【8.0.0_r4】AMS架构与流程分析
AMS主要用来管理应用程序的生命周期,以及其核心组件,包括Activity,Service,Provider,Broadcast,Task等 之前整体架构如下图(O上已经废弃) 新的架构比较直接,简化了很多,直接调用IApplicationThread和IActivityManger这两个接口就可以完成Client和Service端的binder通信 核心record是进程的,各个Record的关系如下图 AMS本身是system_server进程里的的一个服务,在类SystemServer里完成初始化,并为其所在的进程system_server创建Android运行时环境,即主线程ActivityThread和Context具体子类ContextImpl,来满足AMS的运行环境条件;完成AMS的初始化;并将其自身所在的system_server进程其纳入调度中;最后通知其他模块,AMS已经ready了 大体初始化流程如下: 1. 先是在SysemServer的run方法里,在启动任何服务之前,调用 createSystemContext 方法 1 270 private void run() { 2 ……………………………… 3 378 // Initialize the system context. 4 379 createSystemContext(); 5 380 6