安卓专有的通信子系统-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 驱动代理返回处理结果到客户端服务器代理,客户接收到服务器返回的结果。

相关推荐
小程故事多_804 小时前
从 Tokenizer 到 Next Token,穿透数据流,完整理解 Transformer 底层逻辑
android·深度学习·transformer
三少爷的鞋7 小时前
Android 协程实践:为什么不应将 `supervisorScope` 作为常规方案
android
承渊政道8 小时前
【从零开始大模型开发与微调:基于PyTorch与ChatGLM】(从ChatGLM本地化到LoRA、PEFT的高级微调)
android·人工智能·pytorch·chatglm·本地化部署·大模型开发与微调
2601_9628857210 小时前
如何用 Python 判断一只股票“追涨”还是“抄底”更有效?
android·开发语言·python
素师良码10 小时前
第10篇:屏ESD Check内核逻辑驱动代码完整拆解
android
高晶10 小时前
Android 短信收发模块从零到实战:权限配置、界面设计、发送接收与兼容性适配全攻略
android·程序员
随遇丿而安10 小时前
第18周:ViewModel 基础功能 + 架构优化
android
问心无愧051313 小时前
[GXYCTF2019]Ping Ping Ping
android·笔记
事圆则缓13 小时前
Kotlin 异步与并发:从一次搜索请求走到状态流
android·开发语言·kotlin
帅得不敢出门14 小时前
Android Framework定制卸载确认窗口
android