彻底弄懂binder与aidl
aidl与binder机制 为什么需要binder 没有用到binder之前,我们每个app生活在分配给自己的虚拟机和内存空间中,这样保证了app应用的安全,到很多时候我们需要用到跨进程通信(IPC),这时binder就为此而生。ActivityManagerService、WinderManagerService等系统服务的背后都是Binder。 binder跨进程通信原理 image 如上图,binder要想运作,必须有四个角色合作: 客户端:获取服务端的binder驱动引用。并调用它的transact方法即可向服务端发送消息。 服务端:指Binder实现类所在的进程,该对象一旦创建,内部则会启动一个隐藏线程,会接收客户端发送的数据,然后执行Binder对象中的onTransact()函数。 Binder驱动:当服务端Binder对象被创建时,会在Binder驱动中创建一个mRemote对象。 Service Manager:作用相当于DNS,就想平时我们通过网址,然后DNS帮助我们找到对应的IP地址一样,我们在Binder服务端创建的Binder,会注册到Service Mana...