以下几篇文章是分析binder机制里讲得还算清楚的
目录
1. Android - Binder机制 - ServiceManager
2. Android - Binder机制 - 普通service注册
3. Android - Binder机制 - 获得普通service
4. Android - Binder机制 - client和普通service交互
5. Android - Binder机制 - Binder框架总结
6. Android - Binder机制 - ProcessState和IPCThreadState
7. Android - Binder机制 - 驱动
以下几篇讲得更深入透彻,尤其是讲了传输机制的细节:
以下几篇包含测试代码,包括native binder, framework binder , app binder 不同层面的binder 框架和使用:
《service manager和binder service的关系》
阐述了servicemanager和binder service的关系,并说明了servicemananger,binder service的服务端,客户端程序运行时各自所在进程
《Binder service入门–创建native binder service》
用实例说明如何创建native binder service的服务端和客户端,并说明了如何编译以及运行程序,代码在github上可下载。
《Binder service入门—Framework binder service》
用实例说明如何创建framework层 binder service的服务端和客户端,并说明了如何编译以及运行程序,代码在github上可下载
《Binder service入门—应用层binder service》
用实例说明如何创建应用层binder service的服务端和客户端,并说明了如何编译以及运行程序,代码在github上可下载
《Binder service入门—框架层、应用层调用native binder service》
综合运用了前面几篇博客的知识,用实例说明了如何在框架层,应用层调用native binder service,所有代码均可在github上下载
从本篇博客开始分析binder机制,简单介绍了binder机制运行时服务端,客户端和servicemananger的关系
分析了Binder系统架构,层次划分,并着重分析了Binder Adaper层和Binder的核心部分
分析了binder本地框架通信原理,主要就两个重要函数调用流程进行分析,分析了如何获得servicemananger的IBinder指针,还分析了客户端如何获得IBinder指针
分析了Binder本地框架各个类之间的关系,以及IServiceManager相关类之间的关系
分析了Binder Java框架各个类之间的关系,并分析了Binder java框架的相关Jni源码,给出了Java层Binder,BinderProxy,Parcel和本地的BnBinder,BpBinder,Parcel之间的关系。
分析了Java层Binder框架通信原理,主要分析了Java层如何获得IServiceManager对象,和Java层如何获得IBinder接口对象,还分析了Java层binder的数据流动