Binder系统的核心
- IPC 指进程间的通信
主要包括 源,目的,数据。
过程:
1.源进程向ServiceManager注册服务;
2.目的进程向ServiceManager查询服务,得到一个Handle。 - RPC 远程调用
模糊的讲,当一个远程指令发出时,首先构造发送的数据,在发送给目的进程,在目的进程收到时,首先取出收到的数据,解析,并调用本地函数。
Binder系统
- Binder系统主要涉及到4个方面:
- Client
- open Binder驱动
- 获取服务(向ServiceManager查询服务,获取一个handle)
- 向这个handle发数据
- Server
- open Binder驱动
- 注册服务(向ServiceManager发送服务名字)
- while(true){
读驱动取数据
解析数据
调用对应的函数
} - ServiceManager
- open Binder驱动
- 告诉Binder驱动,它是ServiceManager;
- while(true){
读驱动取数据
解析数据
调用{
a. 注册服务(在一个链表里记录服务的服务名字)
b. 获取服务(
b.1 在链表中查询是否存在该服务
b.2 返回“server进程”的handle)
}
} - Binder驱动
- binder工作机制
时间: 2024-12-31 17:07:30