Android源码——Activity组件的启动过程

Activity启动过程

 

Launcher启动MainActivity的过程主要分为6个步骤:

一、LauncherActivityManagerService发送一个启动MainActivity的进程间通信请求;

二、ActivityManagerService首先将MainActivity的信息保存下来,再向Launcher组件发送一个进入中止状态的进程间通信请求;

三、Launcher进入中止状态后,向ActivityManagerService发送一个已经进入中止状态的进程间通信请求;

四、ActivityManagerService启动一个新的应用程序进程

五、新的进程启动完毕,ActivityManagerService发送一个启动完成的进程间通信请求到ActivityThread

六、ActivityThreadMainActivity组件启动起来。

 

 

Activity在进程内启动过程

一、MainActivityActivityManagerService发送一个启动SubActivity进程间通信请求;

二、ActivityManagerService保存SubActivity组件信息,再向MainActivity发送进入中止状态的进程间通信请求;

三、MainActivity进入中止状态,并将状态返回给ActivityManagerService

四、ActivityManagerServiceSubActivity保存的组件发送给应用程序,将SubActivity启动起来。

 

一个Activity组件是在已经存在的应用程序进程中启动,还是在新的应用程序进程中启动,取决于以下两个因素:

Activity组件的的用户ID

Activity组件的android:process属性。

 

Task用来将一系列相关的Activity组件整合到一起,共同完成一个业务功能。这些Activity可以在不同的进程中,这使得Activity组件的重用性强。

 

以上内容阅读《Android系统源代码情景分析》第7章《Activity组件的启动过程》总结。

posted @ 2016-08-07 22:22  ithaibo  阅读(321)  评论(0编辑  收藏  举报
请留下你的高见