最近在拜读任主席的Android开发艺术探索,现在看了一半,再回头看前面的,感觉跟没有看一样,所以还是把知识点总结一下吧。前两节讲了一下IPC的基础知识,这一节来讲一下Binder连接池以及IPC总结
Binder连接池
当项目比较大的时候,如果有多个模块需要AIDL来进行进程间通信,我们不能创建多个Service,太多的Service会耗费资源,所以我们需要减少Service的数量,将所有的AIDL放在一个Service中去管理。工作机制:每个业务模块创建自己的AIDL接口并实现此接口,不同业务模块之间不能有耦合,所有实现细节要单独出来,然后想服务端提供自己的唯一标识和其对应的Binder对象;对于服务端来说,只需要一个Service就可以了,服务端提供一个queryBinder接口,这个几口拿到所需的Binder对象后就可以进行远程方法调用了。Binder连接池的作用就是将每个业务模块的Binder请求统一转发到远程Service中去执行
作者的实现源码