使用场景:客户端使用多个AIDL进行向服务段跨进程通信的时候,为了减少生成的Service对象占用系统资源,使用一个Service管理多个AIDL。
本代码实例是参考任玉刚的艺术探索书里实例,实践分析:
客户端
-
创建ICompute,IsecurityCenterAIDL接口对象,其接口对应的自定义方法
-
创建IBinderPool AIDL接口对象,接口自定义方法:
-
创建ICompute的binder实体类,IsecurityCenter的binder实体类,在客户端起的作用仅仅是为了根据binder找到AIDL接口对象,在服务端的作用是处理客户端传过来的数据。
-
创建BinderPool类,实现服务的绑定以及管理binder
- client的Activity的多进程通信代码,通过binderCode获得对应的binder,通过binder找到AIDL接口对象,调用接口方法和Service端通信
服务端
- 创建BinderPoolServer, 并且在manifest注册该服务,绑定binder
运行结果显示*