Skip to content
阅读进度

Binder 的完整调用过程是什么? ​

返回 Framework 与系统服务 目录

标准回答 ​

客户端拿到目标服务的 Binder 引用,远程情况下使用 Proxy 把接口参数写入 Parcel,再通过 transact 进入 Binder 驱动。驱动依据目标 Binder 节点和句柄把事务送到服务进程,服务端 Binder 线程读取事务,由 Stub.onTransact 解码参数并调用具体实现。同步调用在服务端处理后返回 reply,客户端读取结果;oneway 调用不等待业务结果。Binder 同时支持对象引用传递和调用者身份信息,因此系统服务可以校验实际 calling UID。ServiceManager 主要参与服务发现,不会转发每一次业务调用。

延伸追问 ​

Binder 既有 Java API,也有 Native 库和内核驱动,AIDL 生成代码只是接口封装的一部分。

内容来源 ​

用完整回答理解机制,用真实证据解释项目。