Binder学习资料
置顶
前无古人后无来者的一篇Binder总结,设计的角度。11年的文章应该是2.2的Android代码。建议学完各种情景后再回来阅读一遍,如果能看懂那就说明真的学到了。
系列文章大而全
Android2.2
深入理解Android(卷一)第六章 深入理解Android
Android2.3
Android系统源代码情景分析 第5章 Binder进程间通信系统
书中的内容老罗在博客也有,我感觉网页阅读比纸质书更方便些,下面是博客链接,只放系列头
Android进程间通信(IPC)机制Binder简要介绍和学习计划
Android4.0
这系列文章图不错
Android4.2.2
深入理解Android(卷三)第二章 深入理解java Binder和MessageQueue
Android4.4.2
Android Binder机制(一) Binder的设计和框架
Android6.0
袁辉辉的系列博客,十几篇。比较其他文章这里会涉及到如何调试和使用。
Android7.1
Android Binder框架实现之Binder的设计思想
Android10
Android10.0 Binder通信原理(一)Binder、HwBinder、VndBinder概要
HwBinder入门篇-Android10.0 HwBinder通信原理(一)
也是一个系列博客,值得关注的是这里还有hwbinder。
其他视角
除了以上系列的文章,比较“大”的文章外,还有其他视角值得关注
从变迁的视角更好地理解binder,认识古今过往
Android Binder开发实战指南之创建Native Binder Service
这是系列博客,可以学习下如何实现Binder服务以及代理,提供给其他进程使用。光看不动手是不行滴
期末考试
听说你Binder机制学的不错,来解决下这几个问题(一)
听说你 Binder 机制学的不错,来解决下这几个问题(二)
听说你 Binder 机制学的不错,来解决下这几个问题(三)
这系列文章的题目可以算是最终的关卡,检验自己是否真的熟知binder机制细节
如果能答对80%以上那可以说学会了。
写在后面
binder机制比较庞大复杂,在我的学习过程中有几个印象深的情景、问题
- binder驱动
驱动基础;binder驱动的数据结构;open、mmap、ioctl的流程动作;如何找到对端的?传说中的一次拷贝在哪?
- ServiceManager
启动流程,提供的服务
- native程序/java程序
进程启动流程中如何与binder驱动交互(无论客户端还是服务端)
-
实名binder的add、get流程
-
匿名binder
什么是匿名binder?bindService绑定服务的实现?
- 数据传输
数据如何流转的,包装了几层,如何解包的?
binder对象如何跨进程传输?
为什么Binder对象传过去就变成了BpBinder对象?
- 上手编码
如何写binder服务端,客户接口,有哪几步?native和java
个人笔记,本文会持续更新,希望能对binder初学者有所帮助