【Telephony】IPC 跨层通信机制深度解析 (Binder HAL)
description: “深度剖析 Android Telephony 跨层与层内通信机制,包括 App 层 Binder IPC、Framework 到 HAL 层的 AIDL/HIDL 通信以及进程内 Handler 机制。”Android Telephony 系统由于横跨应用层、系统服务层、硬件抽象层,其内部存在大量复杂的进程间通信(IPC)与进程内事件分发机制。理解这些通信链路,是排查 Telephony 问题的先决条件。1. 通信机制全景图Telephony 内部包含三种核心的通信/分发机制:Top-Down Binder IPC: App 与 Telephony 框架层的通信(App 进程-com.android.phone进程)。Top-Down/Bottom-Up HAL IPC: 框架层与 Vendor RIL 的通信(com.android.phone进程 -rild守护进程)。Internal Event Loop: 框架层内部的状态同步(com.android.phone进程内组件解耦通信)。2. App - Framework: Binder IPC 通信链第三方应用或系统 App 无法直接实例化Phone对象,所有对外暴露的 API 都必须通过标准的 Android Binder 机制跨进程调用。2.1 核心组件映射暴露的 Manager (frameworks/base)对应的 AIDL 接口定义系统服务层实现 (packages/services)职责说明TelephonyManagerITelephony.aidlPhoneInterfaceManager通用的电话、网络、数据状态控制SubscriptionManagerISub.aidlSubscriptionController多卡/多 Subscription 状态管理SmsManagerISms.aidlSmsManagerService短信发送与接收控制2.2 Binder IPC 时序图Phone(opt/telephony)PhoneInterfaceManager(com.android.phone)ServiceManagerTelephonyManagerApp ProcessPhone(opt/telephony)PhoneInterfaceManager(com.android.phone)ServiceManagerTelephonyManagerApp Process