Skip to content

AppBindRecord ​

进程↔Service 的绑定关系记录,对应 AOSP 的 AppBindRecord。记录"哪个客户端进程 bind 了哪个 Service"。

关键字段 ​

从源码提取的真实字段:

字段类型含义
serviceServiceRecord被绑定的 Service
intentServiceRecord.IntentBindRecord绑定所基于的 Intent
clientProcessRecord绑定方进程
connectionsHashSet<ConnectionRecord>该客户端进程对此 Service 的所有连接

构造为 AppBindRecord(ServiceRecord, IntentBindRecord, ProcessRecord)。一个 AppBindRecord 表示「某进程通过某 Intent bind 了某 Service」这一三元关系。

用途 ​

Service 被多个客户端 bind 时,AppBindRecord 追踪每个绑定方。所有连接断开后,server 据此决定是否调 Service.onUnbind/onDestroy、是否可杀 Service 所在进程。

多客户端 bind 关系 ​

每个绑定方进程一个 AppBindRecord,下挂该进程对该 Service 的所有 ConnectionRecord。

基于 VirtualApp 与 epic,仅供学习研究。VirtualApp 禁止商用。