binder重要性
安卓系统,四大组件之间通信,应用之间的通信,主要都是IPC(进程间通信)通信,就是靠binder进行通信
什么是Binder(共享内核空间数据)
Binder是Android跨进程通信方式,它实现了IBinder接口,是安卓跨进程通信的主要桥梁,有着速度快,安全性高的特点
我们可以通过设计团队想要解决问题的思路去分析Binder的设计
- 如何知道调用了那个进程和哪个进程的函数
- 客户端是如何将数据发送给服务端,以及服务端如何将数据返回给客户端
- 如何屏蔽底层通信,让调用像调用本地方法一样便捷
Binder机制
系统给应用分配的空间有用户空间和内核空间,binder利用内核空间共享数据,对数据进行拷贝,从而进行通信(拷贝数据一次)
Linex内核有Binder驱动,最底层对数据进行交换,从而实现通信,内核驱动中存留Binder引用对象(Binder引用,主要是定义的相同类名,通过类名去查找对应的方法,实现对应的不通进程的方法),
Binder机制运行
Binder采用的C/S通信架构,通过aidl作为桥梁进行通信, aidl就是定义相同的函数,不同的进程就根据这个,类似定义约定
底层实现原理
aidl&