我们知道,Android四大组件分别是Activity、Service、Content Provider、BroadCast Receiver。四大组件是如何启动的,如何运行的,是我们关心的。实际上,四大组件的启动运行,离不开ActivityManagerService的参与。ActivityManagerService管理着Activity的任务堆栈、Service的启动、ContentProvider启动、BroadCast Receiver列表管理等。ActivityManagerService对四大组件的管理除了对他们的启动或注册,实际上最大的共性就是对应用程序的进程启动初始化。四大组件在初始化的是时候,ActivityManagerService都会去检查要启动的组件是否有对应的应用进程依托,没有则要开启应用程序进程,如下共同步骤:
1. ActivityManagerService.startProcessLocked
2. Process.start
3. ActivityThread.main
4. ActivityThread.attach
5. ActivityManagerService.attachApplication