理解Android binder机制的关键
来源:互联网 发布:王军税务总局调离 知乎 编辑:程序博客网 时间:2024/06/08 06:36
理解binder机制的关键在于BBinder和BpBinder,前者表示本地IBinder接口,后者表示远程IBinder接口。BBinder用于为服务进程提供接口,而BpBinder是BBinder的代理,客户端可以通过它获得服务。
那么为什么BpBinder能够作为代理获得BBinder提供的服务呢?这就是binder设备驱动的作用了。
如果某个服务希望能够对外提供一个BBinder接口,则它必须告知binder设备驱动。为此它向设备驱动程序提供了:服务名、BBinder对象的地址等信息。设备驱动必须能标识这个服务,但BBinder对象的地址是个用户空间的地址,这就意味着其他的BBinder对象地址可能和这个地址相同。而通过服务名进行标识,似乎效率不高。因此设备驱动生成并管理了和BBinder对象一一对应的handle。BpBinder正是通过这个handle,向驱动发出请求(驱动可以据此找到处理这个请求的服务进程),达到类似远程调用的效果的。因为驱动要求尽量简单,因此它把这些和服务对应的handle的管理交给了Service Manager的进程维护,客户端可以向Service Manager进程获得handle,然后用这个handle生成BpBinder代理。
理解了BBinder和BpBinder后,再去看相关的代码就容易懂了。
- 理解Android binder机制的关键
- android binder机制的理解
- 理解 Android 的 Binder 机制
- Android Binder机制理解
- Android Binder机制理解
- Android Binder机制理解
- 深入理解 Android 的 IPC 机制--------Binder
- android中的Binder机制的简要理解
- Android中的Binder机制的理解
- Android中的Binder机制的简要理解
- 深入理解 Android 的 IPC 机制--------Binder
- Android中的Binder机制的简要理解
- Android中的Binder机制的简要理解
- Android之最好理解的Binder机制
- 理解Android Binder机制原理
- Binder最关键的机制总结
- android的binder机制
- Android的Binder机制
- 预装载库函数
- 【ci框架】自定义扩展的核心控制器类MY_Controller
- jQuery乱谈(五)
- 异常笔记
- 项目延期的⑦大因素
- 理解Android binder机制的关键
- 今天的小收获
- 用递归算法写一个函数,求字符串最长连续字符的长度,比如aaaabbcc的长度为4,aabb的长度为2,ab的长度为1。
- 常用的电平转换方案(74HC245、74LVC4245等)
- 使用top命令查看CPU负载
- Python运算符列表
- 返回顶部完整代码
- 感情我已经成活生生血淋淋的hdu新手刷级攻略了呀囧~
- Android利用HttpURLConnection发送参数及获得页面内容