Binder学习提纲
参考:http://gityuan.com/2015/10/31/binder-prepare/
https://blog.csdn.net/carson_ho/article/details/73560642
下面罗列一下关于Binder系列文章的提纲:
- Binder系列1—Binder Driver初探
- Binder系列2—Binder Driver再探
- Binder系列3—启动Service Manager
- Binder系列4—获取Service Manager
- Binder系列5—注册服务(addService)
- Binder系列6—获取服务(getService)
- Binder系列7—framework层分析
- Binder系列8—如何使用Binder
- Binder系列9—如何使用AIDL
- Binder系列10—总结
文章是从底层驱动往上层写的,这并不适合大家的理解,建议读者还是从上层往底层看。下面说说这个系列文章之间的彼此联系,也是对你阅读顺序的一个建议,更好的建议,大家可以上微博跟@Gityuan,或许邮件跟我进行交流与反馈:
首先阅读Binder系列5—注册服务(addService)和Binder系列6—获取服务(getService),这两个过程都需要于ServiceManager打交道,那么这两个过程在开始之前都需要Binder系列4—获取Service Manager,既然要获取Service Manager,那么就需要先Binder系列3—启动Service Manager。在看Binder服务的注册和获取这两个过程中,不断追溯下去,最终调用到底层Binder底层驱动,这时需要了解Binder系列1—Binder Driver初探和Binder系列2—Binder Driver再探。
看完Binder系列1~系列6,那么对Binder的整个流程会有一个比较清晰的认知,这还只是停留在Native层(C/C++)。接下来,可以看看上层Binder系列7—framework层分析的Binder架构情况,Java层 Binder架构的核心逻辑都是交由Native架构来完成,更多的是对Binder的一个封装过程,只有真正理解了Native层Binder架构,才能算掌握的Binder。
前面的这些都是讲述Binder整个流程以及原理,再接下来你可能想要自己写一套Binder的C/S架构服务。如果你是系统工程师可能会比较关心Native层和framework层分别该如何实现自己的自定义的Binder通信服务,见Binder系列8—如何使用Binder;如果你是应用开发工程师则应该更关心App是如何使用Binder的,那么可以查看文章Binder系列9—如何使用AIDL。
最后是对Binder的一个简单总结Binder系列10—总结。
一、一些重要概念
1. 进程空间
用户空间、内核空间
2. 内存映射