startActivityForResult()-->
Instrumentation.execStartActivity()-->ActivityManagerNative.getDefault().startActivity---Instrumentation通过Bind方式调用AMS启动activity-- >
(ActivityManagerProxy.startActivity)
AMS.startActivityAsUser-->
ActivityStackSupervisor.startActivityMayWait-->
ActivityStack.resumeTopActivityLocked-->
ApplicationThreadProxy.schedulePauseActivity--ActivityStack通过Bind方式调用AplicationThread暂停Lancher-->
ActivityThread.handlePauseActivity-->
ActivityManagerProxy.activityPaused---ActivityThread通过Bind方式通知AMS已经暂停了Lancher-->
ActivityManagerService.activityPaused->
ActivityStack.activityPaused->(把Activity状态修改为PAUSED)
ActivityStack.resumeTopActivityLokced-->
ActivityStack.startSpecificActivityLocked->
(Lancher 的话会暂定Lancher进程后重新开启新的app进程)
ActivityManagerService.startProcessLocked--调用AMS-->
Process.start("android.app.ActivityThread",...)->
Process.startViaZygote->
ActivityThread.main->
ActivityThread.attach->
ActivityManagerService.attachApplicationLocked->
ApplicationThreadProxy.scheduleLaunchActivity->
ActivityThread.handleLaunchActivity->
ActivityThread.performLaunchActivity-->
1 Instrumentation.newActivity 创建Activity
2 ActivityClientRecord.packageInfo.makeApplication创建Application
3 Activity.attach 1)把Application attach到Activity 2)完成数据初始化如创建ContextImpl
4 Instrumentation.callActivityOnCreate:调用onCreate
ActivityThread.handleResumeActivity