美文网首页
IPC -- Binder机制的工作原理

IPC -- Binder机制的工作原理

作者: 黑键手记 | 来源:发表于2018-10-31 11:50 被阅读9次

    Binder 机制工作原理大体分为3部分:

    • 客户端
    • 服务端
    • Binder驱动 : 其中 Binder 驱动是 Android 系统专门提供的,用于辅助客户端远程调用服务端对象的一个底层架构。

    服务端做的工作是:

        * 准备`Binder对象`,用于`客户端`远程调用
        * 准备好`Binder对象`之后,创建一个Binder线程,用于等待客户端发起远程请求
         (这个远程请求是`客户端`通过`Binder驱动`发起的)
        * 当`服务端`收到`客户端`通过`Binder驱动`发送过来的请求时,`服务端`会调用`Binder对象`
          中的`onTransact()`方法,根据`客户端`传递过来的参数去执行不同的`服务端`代码,用于
          获取`服务端`的数据或调用`服务端`的方法
    

    客户端做的工作是:

       * `客户端`如果想要远程访问`Binder服务`,就得获取远程`服务端的Binder对象`,获取Binder对象就得首先获得`Binder驱动` 生成的`mRomote对象引用`
       * 当获取到`Binder驱动`的`mRemote引用`后,就可以调用相应的`Binder对象`暴露给`客户端`的方法
    

    通过上面的服务端客户端要做的工作之后,我们应该就能分析出Binder驱动主要的工作了。

    Binder驱动:

        当`服务端`创建好`Binder对象`之后,`Binder驱动`会自动创建一个`mRemote对象`,客户端
        可以通过这个对象调用`transact()`方法去远程调用 `服务端`,从而触发`服务端`的 
        `onTransact()`方法,从而获取`服务端`的信息或者调用`服务端`方法。
    

    相关文章

      网友评论

          本文标题:IPC -- Binder机制的工作原理

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