美文网首页
AIDL流程整理

AIDL流程整理

作者: 朱哥 | 来源:发表于2021-04-01 16:39 被阅读0次

    AIDL流程整理,不涉及Binder的通信原理

    XMind导出文字

    1、client通过bindService连接到remoteService

    2、service在onBind方法中实例化Stub,并返回这个实例对象iBinder

    3、client通过onServiceConnected的参数service,调用Stub.asInterface(service)方法,获取服务端的代理Proxy

    4、client具体调用方调用Proxy提供的接口方法。【注意】Proxy中并没有真正实现接口,而是将传参data、返回值reply、方法标识打包,然后调用mRemote的transact方法,从而进入Stub的onTransact方法,这是client进入阻塞状态(同步状态下)

    5、service的stub实例在onTransact方法中收到Proxy发送的请求,根据方法标识,决定需要执行的方法

    6、从接收参数的data中获取业务参数,执行实例对象iBinder中真正的接口业务方法,将业务方法执行后的结果放入接收参数的reply中,onTransact方法执行完成后,返回staus,service端进入阻塞状态

    7、client激活,Proxy接收到mRemote返回的状态status,获取reply中的返回值,将返回值返回给client具体的调用方。【至此跨进程通信完成】

    相关文章

      网友评论

          本文标题:AIDL流程整理

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