11.Binder

作者: from0 | 来源:发表于2018-03-26 14:09 被阅读2次

什么是Binder?简单描述下它的工作过程和使用场景

什么是 Binder

Binder 是 Android 中的一种跨进程的通信方式。采用 C/S 架,是客户端和服务端通信的媒介,Binder 十分适合 Android 系统,性能高效,只会复制一次;安全性高,每个进程有自己的 UID。
Binder 还可以理解为一种虚拟的物理设备,它的设备驱动是 /dev/binder。

工作过程

服务端在初始化时在 ServiceManager 注册,客户端使用的时候向 ServiceManager 请求查找对应的服务。framework 层中服务端间接继承自 Binder,客户端间接继承自 BinderProxy 代理类。客户端通过 Bidner 向服务器发起请求,这个过程是同步的,客户端会被挂起直到接收到服务端的回应,Binder 中把请求的信息写入到 Parcel 对象 data 中,调用 transact 将请求发给服务端,服务端收到后,回调 onTransact 方法,在线程中处理,读取之前的 data 数据,将处理后的数据写入 reply 中,返回给 Binder。这样就完成了一次调用过程。

image

使用场景

  1. 四大组件的启动。AMS 是 Binder,ApplicationThread 也是 Binder。
  2. App 多进程模块互相调用,或者 App 之间通信。

相关文章

  • 11.Binder

    什么是Binder?简单描述下它的工作过程和使用场景 什么是 Binder Binder 是 Android 中的...

  • Android基础知识总结(二)

    11.binder机制 Binder是Android系统中进程间通讯(IPC)的一种方式,也是Android系统中...

网友评论

      本文标题:11.Binder

      本文链接:https://www.haomeiwen.com/subject/zmxuqftx.html