Activity在MainActivity中启动流程跟踪

在代码中启动一个Activity流程即在一个MainActivity中启动另外一个Activity:
1.Activity.startActivity
2.Activity.startActivityForResult
3.Instrumentation.execStartActivity
4.ActivityManagerProxy.startActivity
5.ActivityManagerService.startActivity
6.ActivityStack.startActivityMayWait
7.ActivityStack.startActivityLocked
8.ActivityStack.startActivityUncheckedLocked
9.ActivityStack.resumeTopActivityLocked
10.ActivityStack.startPausingLocked


11.ApplicationThreadProxy.schedulePauseActivity
12.ApplicationThread.schedulePauseActivity
13.ActivityThread.queueOrSendMessage
14.H.handleMessage
15.ActivityThread.handlePauseActivity


16.ActivityManagerProxy.activityPaused
17.ActivityManagerService.activityPaused
18.ActivityStack.activityPaused
19.ActivityStack.completePauseLocked
20.ActivityStack.resumeTopActivityLocked
21.ActivityStack.startSpecificActivityLocked
22.ActivityStack.realStartActivityLocked


23.ApplicationThreadProxy.scheduleLaunchActivity
24.ApplicationThread.scheduleLaunchActivity
25.ActivityThread.queueOrSendMessage
26.H.handleMessage
27.ActivityThread.handlerLaunchActivity
28.ActivityThread.performLaunchActivity
29.onCreate


1-10:应用程序的MainActivity通过Binder进程间通信机制通知ActivityManagerService,他要启动一个新的Activity
11-15:ActivityManagerService通过binder进程间通信机制通知MainActivity进入Paused状态
16-22:MainActivity通过Binder进程间通信机制通知ActivityManagerService,他已经准备就绪进入Paused状态,于是ActivityManagerService就准备在MainActivity所在的进程和任务中启动新的Activity了,
23-29:ActivityManagerService通过binder进程间通信机制通知MainActivity所在的ActivityThread,现在一切就绪,他可以真正启动执行Activity的启动操作了。


ActivityManagerService和ActivityStack位于同一进程中,而ApplicationThread和ActivityThread位于另一进程中。ActivityManagerService是负责管理Activity的生命周期,ActivityManagerService还借助ActivityStack来把所有的Activity按先后顺序放在一个堆栈中。对于每一个应用程序来说,都有一个ActivityThread来表示应用程序的主进程,二每一个ActivityThread都包含一个ApplicationThread,ApplicationThread是一个Binder,负责和其他进程进行通信。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值