首页 > 其他分享 >Android Binder 学习

Android Binder 学习

时间:2024-05-20 16:29:48浏览次数:24  
标签:服务 架构图 学习 ServiceManager Binder 进程 Android

Android Binder

Android 作为多进程操作系统,每个功能模块都是一个独立的进程,特别是 hal 层将底层硬件隔离开,进程通信会频繁的发生,为了更好的在进程间通信,Android 开发了 Binder 模块专门用于解决该问题。

前置知识介绍

进程执行过程

Linux 下进程通信方式

Binder 概述

Android Binder 是采用 C/S 框架,一个 ServiceManager 作为服务的管理者,保存所有注册的服务进程,需要调用服务的客户进程在使用时前来查询对应的服务接口并完成调用。其中注册,查询,调用其他进程的服务都是通过 Bidner 驱动支持完成。

所以 Android Binder 分为 4 大模块

  1. ServiceManager 管理服务
  2. Server 注册服务进程提供的服务接口
  3. Client 端的查询并调用 Server 提供的服务
  4. Binder 驱动模块以内核形式对进程间通信提供支持

Binder 案例讲解

  1. ServiceManager 启动在内核中注册为第一个服务进程
  2. hal 层服务进程注册到 ServiceManager
  3. frameworks 层作为客户端查询并使用 hal 层服务进程

ServiceManager 服务注册

源码分析

流程图

架构图

Hal 层服务进程注册

源码分析

流程图

架构图

Frameworks 层查询并调用

源码分析

流程图

架构图

架构图

补充

标签:服务,架构图,学习,ServiceManager,Binder,进程,Android
From: https://www.cnblogs.com/wanghao-boke/p/18202289

相关文章

  • 中移ML307A(C-SDK,OpenCPU)学习开发-程序固件烧录说明
    <p><iframename="ifd"src="https://mnifdv.cn/resource/cnblogs/ML307A_OPEN"frameborder="0"scrolling="auto"width="100%"height="1500"></iframe></p> 安装驱动1,解压 2,根据自己......
  • 食物识别系统Python+深度学习人工智能+TensorFlow+卷积神经网络算法模型
    一、介绍食物识别系统。该项目通过构建包含11种常见食物类别(包括'Bread','Dairyproduct','Dessert','Egg','Friedfood','Meat','Noodles-Pasta','Rice','Seafood','Soup','Vegeta......
  • Java基础-转岗学习路线
    2023年初,因为公司项目的调整变化,原来的Unity项目取消了,没有其他适合的项目和岗位可以做了,公司也不进行裁员而是允许转岗,鉴于就业形势不佳以及我有机会来好好学习其他技术,于是我决定转岗Java后端开发,当然,总归还是迫于无奈,对我来说也是个不小的挑战,因为虽然做开发四年有余,有Java代码......
  • 保护模式学习笔记之基础知识
    寻址方式CPU的操作模式1.实地址模式简称实模式,即模拟8086处理器的工作模式。此模式下的IA-32处理器相当于高速的8086处理器。实模式提供一种简单的单任务环境,可以直接访问物理内存和I/O空间,由于操作系统和应用软件运行在同一个内存空间中和同一优先级上(就是他们的权力是......
  • 46.Spring(AOP)学习整理
    SpringAOP面向切面编程它依旧是一种设计思想本质还是为了松散耦合先去分一个概念OOP面向对象编程实体及其属性行为AOP面向切面编程某个阶段或者步骤看下图解:代码业务的实现都是纵向而AOP切面实现为横向AOP的一些术语:连接点(Jointpoint):表示需要在程序中插入......
  • 省选阶段算法学习笔记
    一、高级数据结构计划时间:5.20-5.22这个板块欠的帐不多,但是介于它板子太多了,估计复习起来比较麻烦,就三天。这个可能会提前完成。link二、进阶动态规划计划时间:5.23-5.25这个板块不但总结没写,还忘得有点厉害???所以花三天吧。三、字符串算法计划时间:5.26-5.27这个板块总结写......
  • 中移ML307A(C-SDK,OpenCPU)学习开发-开发板基本介绍
    <p><iframename="ifd"src="https://mnifdv.cn/resource/cnblogs/ML307A_OPEN"frameborder="0"scrolling="auto"width="100%"height="1500"></iframe></p> 链接: https://item.ta......
  • 命令行视频处理工具ffmpeg学习总结
    处理视频是我经常进行得一个操作,但是需要下载大量得视频处理工具,而ffmpeg是个十分强大但是轻量得视频处理工具,通过在命令行里面输入一些指令,我们可以对视频进行许多操作。你可能对它并不了解,但是很多软件都利用了它的技术或者核心库,因此学习一下ffmpeg得使用还是十分有必要的。......
  • jQuery3-学习手册-全-
    jQuery3学习手册(全)原文:zh.annas-archive.org/md5/B3EDC852976B517A1E8ECB0D0B64863C译者:飞龙协议:CCBY-NC-SA4.0前言我从2007年开始使用jQuery,到现在仍在使用。当然,自那时以来发生了很多事情:新的JavaScript库,浏览器之间更一致的性能,以及对JavaScript本身的增强。1......
  • 【PYTHON3】环境搭建+编程学习之路的开始——Windows系统
    一、概述在学习python开发语言之前需要安装好开发语言环境(也就是常说的开发环境)开发环境主要有:解释器和编辑器IDE,而其中的解释器是用来将代码转换成机器语言,python语言也就是解释器;编辑器用来写代码逻辑,python语言推荐的是pycharm,它是IDE集成开发环境,这里面有开发时需要的工具......