# 读 Android 开发艺术探索 &5

关键词:Binder 连接池 / BinderPool / AIDL / Service /

AIDL 是最常用的进程间通信方式,先温故一下它的大致流程:(1)创建一个 Service 和一个 AIDL 接口;(2)创建一个类,继承于 AIDL 接口中的 Stub 类,并实现 Stub 中的抽象方法;(3)在 Service 中的 onBind 方法中返回这个类的对象;(4)客户端绑定服务端的 Service,建立连接后访问远程服务端;

正文 #

本次笔记的梳理主要是有关 Binder 连接池,需要知道以下几点:

  1. 随着 AIDL 数量的增加,我们并不能无限制的增加 Service,作为四大组件之一的 Service 本身也是一种系统资源,我们需要减少 Service 的数量,将所有的 AIDL 放在同一个 Service 中去管理;
  2. Binder 连接池的主要作用就是将每个业务模块的 Binder 请求统一转发到远程 Service 中去执行,从而避免了重复创建 Service 的过程;
  3. 只需要创建一个 Service 即可完成多个 AIDL 接口的工作;
  4. BinderPool 是一个单例实现,在同一个进程中只会初始化一次,所以提前初始化 BinderPool,可以优化程序的体验,比如放在 Application 里面;
  5. BinderPool 中有断线重连的机制,当远程服务意外终止时,BinderPool 会重新建立连接;
  6. BinderPool 能够极大的提高 AIDL 的开发效率,并且可以避免大量的 Service 创建,因此,建议在 AIDL 开发工作中引入 BinderPool 机制;

End.

Note by HF.
Learn from 《Android 开发艺术探索》


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值