所有的应用都是在Launcher的基础上运行起来的,具体如下:
1.Launcher会向ActivityManagerService(AMS)发送一个启动MainActivity的请求
2.AMS在接到请求后,会将MainActivity的信息保存下来,然后向Launcher发送一个进入中止状态的进程间通讯请求
3.Launcher组件进入到中止状态后,会想AMS发送一个已经进入中止状态的请求,以便于AMS执行启动Activity操作
4.AMS发现MainActivity组件所在应用程序进程不存在,所以会先创建一个新的应用程序进程
5.新的应用程序创建完成后,会向AMS发送一个已创建完成的请求,以便于AMS可以继续执行启动Activity的操作
6.AMS将第2步保存下来的MainActivity信息发送给第4步创建的应用程序进程,以便于它将MainActivity组件启动起来