1:Launcher获取点击事件,由于Launcher在启动时,会通过PMS查询所有Androidmanifest中的Intent,所以点击图标,就会调用相应的APP,进入APP启动的入口StartActivity。
2:StartActivity->StartActivityForResult->mInstrumentation.exceStartActivity
备注:mInstrumentation是ActivityThread创建的,一个进程1个。
3:AMS.startActivity->ATMS.startActivityAsUser
4:getActivityStartController().obtainStarter获取ActivityStarter
5:ActivityStarter.execute执行
6:startActivityMayWait创建ActivityInfo。
7:startActivity创建ActivityRecord,ActivityStack,ActivityRecord记录了activity的所有信息,ActivityStack进行栈管理。
8:startActivityUnchecked