Binder池浅谈分析

185 阅读1分钟

使用场景:客户端使用多个AIDL进行向服务段跨进程通信的时候,为了减少生成的Service对象占用系统资源,使用一个Service管理多个AIDL。

本代码实例是参考任玉刚的艺术探索书里实例,实践分析:

客户端

  1. 创建ICompute,IsecurityCenterAIDL接口对象,其接口对应的自定义方法

  2. 创建IBinderPool AIDL接口对象,接口自定义方法:

  1. 创建ICompute的binder实体类,IsecurityCenter的binder实体类,在客户端起的作用仅仅是为了根据binder找到AIDL接口对象,在服务端的作用是处理客户端传过来的数据。

  2. 创建BinderPool类,实现服务的绑定以及管理binder

  1. client的Activity的多进程通信代码,通过binderCode获得对应的binder,通过binder找到AIDL接口对象,调用接口方法和Service端通信

服务端

  1. 创建BinderPoolServer, 并且在manifest注册该服务,绑定binder

运行结果显示*