使用的是plantUML生成的,脚本如下:
@startuml
autonumber
title bindService之拿到服务端的binder
App绑定服务 -> ContextImp: bindService// 服务端的binder对象最终回调到onServiceConnected中
ContextImp -> ContextImp: bindServiceCommon
ContextImp -> LoadedApk:getServiceDispatcher():IServiceConnection
ContextImp -> ActivityManager: getService():ActivityManagerService
ContextImp -> ActivityManagerService: bindIsolatedService
ActivityManagerService -> ActiveServices:bindServiceLocked()
ActiveServices -> ActiveServices:retrieveServiceLocked// 从PackageManager中得到服务端对应的ServiceRecord
ActiveServices -> ActiveServices:bringUpServiceLocked//如果是autoCreate的flag的话调用这个方法,会开始创建服务,\n并在ActivityThread中的mServices里面管理
ActiveServices -> ActiveServices: 检查权限和参数
ActiveServices -> ConnectionRecord:构造方法(connection