在前面多篇文章中,都有提到ActivityManagerService,它是在系统启动时加载的一个服务线程,运行于system_server进程中,主要负责管理系统中的Activity和Service,那么,ActivityManagerService是怎么管理和维护这些Activity和Service的呢?这里的Service,指的是Activity应用里的Service。在看本篇文章之间,请先参阅《
Android 进阶 - 进阶启动分析》,《
Android 进阶 - Activity应用启动分析》,《
Android 进阶 - Activity服务启动分析》几篇文章,这样感觉会更直观。
1. 接口图
由于ActivityManagerService服务与Activity应用不在同一进程,之间的通讯都是采用Binder通讯,为了更好的理解ActivityManagerService是如何管理Activity和Service,又是如何与Activity和Service通讯的,我们先来看看组件图: