Binder连接池
阅读作者任玉刚老师的Binder连接池的内容,虽然代码跑了一遍,但是还是有很多的地方没有理解,咨询了公司的其他同事,也说Binder的内容比较深,目前学会使用就可以了。希望在后面的工作中,能够有更深的理解吧。
Binder连接池的作用个人理解类似于工厂模式(定义一个用于创建对象的接口,让子类决定实例化哪个类),使用作者的话:每个业务模块创建自己的AIDL接口并实现此接口,这个时候不同业务模块之间是不能有耦合的,所有实现细节我们要单独开来,然后向服务端提供自己的唯一标识和对应的Binder对象;对于服务端来说,只需要一个Service就可以了,服务端提供一个queryBinder接口,这个接口能够根据业务模块的特征来返回相应的Binder对象给它们,不同的业务模块拿到所需的binder对象后就可以进行远程方法调用了。由此可见,Binder连接池的主要作用就是将每个业务模块的Binder请求统一转发到远程Service中去执行,从而避免了重复创建Service的过程。代码就不贴了,结尾会放上任老师书籍的github配套地址需要的可以自行下载。
适合的IPC方式
IPC方式的优缺点和适用场景.jpgRPC (Remote Procedure Call Protocol)远程过程调用协议
网友评论