安卓专有的通信子系统-Binder IPC

一、Binder 是什么

它是一种IPC 通信机制,它比Linux一般的通信方式更加简洁,消耗内存资源更小。实质是一种架构,这种架构可以提供服务器端服务接口,Binder 驱动,客户端服务代理接口,以及一个守护进程Service Manager.提供主要的功能如下:

  • 驱动程序来推进进程间的通信
  • 使用共享内存提高性能
  • 为进程请求分配每个进程的线程池
  • 针对系统中的对象引入了引用计数和跨进程对象引用映射
  • 进程间同步调用

二、Binder 通信原理

采用C/S 模式,也就是Client- Server ,每个需要Binder 通信的进程都必须创建一个Binder接口

Binder 驱动:是一个miscdevice的驱动,主设备号为10,其设备节点dev/binder ,在驱动实现过程中,主要是通过binder_ioctl 函数与用户空间的进程交换数据。负责为上层客户端提供各种操作接口

Service Manager: 负责管理系统服务,监听并相应客户端的请求

Client:一般指的是安卓系统上面的应用程序,他可以请求Server 中的服务

三、Binder 使用实例

客户端发送请求到binder驱动代理对象发送用户请求到服务器进程,服务器进程处理用户请求,并通过Binder 驱动代理返回处理结果到客户端服务器代理,客户接收到服务器返回的结果。

相关推荐
Godikov24 分钟前
在 Android 上跑 Kafka Consumer:一个实时定位数据接入的踩坑记录
android
mmsx1 小时前
Android 自定义 View 三关:触摸分发、绘制与坐标错位
android·kotlin
JMchen1 小时前
自定义View在复杂业务场景中的实战
android·kotlin·canvas
hai_android1 小时前
RecyclerView 缓存机制详解
android·kotlin·android jetpack
_祝你今天愉快8 小时前
UI核心 - UI绘制流程及原理
android
mmsx8 小时前
Android 一个设备多个 App 抢:跨进程共享服务的架构设计
android·kotlin·app
mmsx8 小时前
Android GIS系列 栅格怎么存、格网怎么归算:两个容易混淆的 GIS 链路
android·性能优化·app
陈柒吖8 小时前
安卓代码加固(1):加密DEX
android·前端
mmsx8 小时前
Android GIS系列 串口、蓝牙、USB、网络:一套统一抽象怎么扛住四种通道
android·app·产品
二流小码农8 小时前
鸿蒙开发:ArrayList,可不会让UI更新哦
android·ios·harmonyos