美文网首页
Android Binder

Android Binder

作者: GordenNee | 来源:发表于2017-09-06 13:52 被阅读14次

    理解Binder还是需要从AIDL入手,Aidl其实就是个封装好的Binder。

    Binder 具体的流程:

    • 首先通过asInterface() 拿到代理对象Proxy,
    • 然后调用Proxy的add() 方法,add方法内部会调用BindProxy的 transact 方法,这个方法内部是c/c++代码,处理完毕后会回调本地对象Stub的onTranscat方法,在这个方法内部,会根据被调用方法来执行相应的逻辑,这里是this.add().并将结果作为reply返回。

    类比:

    Binder理解之ActivityManagerService

    • ActivityManagerNative 继承自Binder,实现IActivityManager接口,所以它其实是一个Binder本地对象。
    • ActivityManagerService 继承自ActivityManagerNative,他实现具体的方法。
    • ActivityManagerProxy 是一个代理类,因此它相当于是一个Binder代理对象。
    • ActivityManager 只是一个管理类,客户端通过它来进行相应的操作。它内部持有一个ActivityManagerProxy代理对象,因此可以通过这个代理对象完成跨进行通信。

    相关文章

      网友评论

          本文标题:Android Binder

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