引言
什么是多进程?
运行在同一个进程中的组件是属于同一个虚拟机和同一个Application的。同理,运行在不同进程中的组件是属于两个不同的虚拟机和Application的。
工作原理
每个业务模块创建自己的AIDL接口并实现此接口,然后向服务端提供自己的唯一标识和其对应的Binder对象,对于服务端来说,只需要一个Service就可以了,服务端提供一个queryBinder接口,该接口根据业务模块的特征来返回相应的Binder对像,不同的业务模块拿到所需的Binder对象后就可以进行远程方法调用了。
主要作用
将每个业务模块的Binder请求统一转发到远程Service中去执行,从而避免重复创建Service的过程。
这是不是很像我们在设计模式中见到过的一种的思路呢?
没错,就是我们工厂模式,BinderPool在这里充当工厂。
下面让我们写个demo去理解这个流程:
- 首先是三个AIDL文件
ISecurityCenter.aidl
package