主要有四次IPC
第一次IPC 目標(biāo)是在AMS 中創(chuàng)建 客戶端APP 的Connection 映射 IServiceConnection
建立了 AMS 到 App 的結(jié)果返回通道
第二次IPC 是在創(chuàng)建目標(biāo)Service 的進(jìn)程之后
有AMS 與 Service VM 進(jìn)行一次通信 進(jìn)行后續(xù)的bind操作 此時(shí)執(zhí)行了 Service.onBind():Ibinder 方法 幼驶,獲取到IBinder后 馬上執(zhí)行了第三次IPC 操作
建立了ServiceVM 與AMS 中 Service.IBinder 的映射
第四次 IPC 則是上述步驟執(zhí)行完畢后艾杏,AMS 通過(guò)第一次IPC 保存的IServiceConnection映射與AppVM 進(jìn)行一次通信 回調(diào)綁定結(jié)果,并將AMS 中Service.IBinder 的映射再次映射給 AppVM
至此完成 bindservice 操作
BindService流程.png