Activity的startActivity方法调用过程

Activity的startActivity方法调用过程

采用一步步追踪调用过程的方法

App的startActivity到AMS的调用过程
startActivity方法调用过程

IActivityManager.java类是由AIDL工具在编译时自动生成的,位于/frameworks/base/core/java/android/app/IActivityManager.aidl

ActivityManagerService继承自IActivityManager.Stub,表示服务端

public class ActivityManagerService extends IActivityManager.Stub

可知,最终会调用AMS的startActivity方法

同样的方式,添加log,启动联系人app的添加新联系人的页面,log日志输出如下:

05-25 22:10:44.121  1587  1720 I wztest  : ActivityStackSupervisor resumeFocusedStackTopActivityLocked
05-25 22:10:44.121  1587  1720 I wztest  : java.lang.Exception
05-25 22:10:44.121  1587  1720 I wztest  : 	at com.android.server.am.ActivityStackSupervisor.resumeFocusedStackTopActivityLocked(ActivityStackSupervisor.java:2089)
05-25 22:10:44.121  1587  1720 I wztest  : 	at com.android.server.am.ActivityStarter.startActivityUnchecked(ActivityStarter.java:1238)
05-25 22:10:44.121  1587  1720 I wztest  : 	at com.android.server.am.ActivityStarter.startActivity(ActivityStarter.java:995)
05-25 22:10:44.121  1587  1720 I wztest  : 	at com.android.server.am.ActivityStarter.startActivity(ActivityStarter.java:572)
05-25 22:10:44.121  1587  1720 I wztest  : 	at com.android.server.am.ActivityStarter.startActivityLocked(ActivityStarter.java:278)
05-25 22:10:44.121  1587  1720 I wztest  : 	at com.android.server.am.ActivityStarter.startActivityMayWait(ActivityStarter.java:817)
05-25 22:10:44.121  1587  1720 I wztest  : 	at com.android.server.am.ActivityManagerService.startActivityAsUser(ActivityManagerService.java:4532)
05-25 22:10:44.121  1587  1720 I wztest  : 	at com.android.server.am.ActivityManagerService.startActivity(ActivityManagerService.java:4519)
05-25 22:10:44.121  1587  1720 I wztest  : 	at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:121)
05-25 22:10:44.121  1587  1720 I wztest  : 	at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2919)
05-25 22:10:44.121  1587  1720 I wztest  : 	at android.os.Binder.execTransact(Binder.java:697)
05-25 22:10:44.122  1587  1720 I wztest  : ActivityStackSupervisor resumeTopActivityUncheckedLocked
05-25 22:10:44.124  1587  1720 I wztest  : ActivityStackSupervisor resumeFocusedStackTopActivityLocked
05-25 22:10:44.124  1587  1720 I wztest  : java.lang.Exception
05-25 22:10:44.124  1587  1720 I wztest  : 	at com.android.server.am.ActivityStackSupervisor.resumeFocusedStackTopActivityLocked(ActivityStackSupervisor.java:2089)
05-25 22:10:44.124  1587  1720 I wztest  : 	at com.android.server.am.ActivityStack.completePauseLocked(ActivityStack.java:1486)
05-25 22:10:44.124  1587  1720 I wztest  : 	at com.android.server.am.ActivityStack.activityPausedLocked(ActivityStack.java:1413)
05-25 22:10:44.124  1587  1720 I wztest  : 	at com.android.server.am.ActivityManagerService.activityPaused(ActivityManagerService.java:7441)
05-25 22:10:44.124  1587  1720 I wztest  : 	at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:317)
05-25 22:10:44.124  1587  1720 I wztest  : 	at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2919)
05-25 22:10:44.124  1587  1720 I wztest  : 	at android.os.Binder.execTransact(Binder.java:697)
05-25 22:10:44.124  1587  1720 I wztest  : ActivityStackSupervisor resumeTopActivityUncheckedLocked
05-25 22:10:44.125  1587  1720 I wztest  : ActivityStackSupervisor startSpecificActivityLocked
05-25 22:10:44.125  1587  1720 I wztest  : java.lang.Exception
05-25 22:10:44.125  1587  1720 I wztest  : 	at com.android.server.am.ActivityStackSupervisor.startSpecificActivityLocked(ActivityStackSupervisor.java:1564)
05-25 22:10:44.125  1587  1720 I wztest  : 	at com.android.server.am.ActivityStack.resumeTopActivityInnerLocked(ActivityStack.java:2726)
05-25 22:10:44.125  1587  1720 I wztest  : 	at com.android.server.am.ActivityStack.resumeTopActivityUncheckedLocked(ActivityStack.java:2255)
05-25 22:10:44.125  1587  1720 I wztest  : 	at com.android.server.am.ActivityStackSupervisor.resumeFocusedStackTopActivityLocked(ActivityStackSupervisor.java:2097)
05-25 22:10:44.125  1587  1720 I wztest  : 	at com.android.server.am.ActivityStack.completePauseLocked(ActivityStack.java:1486)
05-25 22:10:44.125  1587  1720 I wztest  : 	at com.android.server.am.ActivityStack.activityPausedLocked(ActivityStack.java:1413)
05-25 22:10:44.125  1587  1720 I wztest  : 	at com.android.server.am.ActivityManagerService.activityPaused(ActivityManagerService.java:7441)
05-25 22:10:44.125  1587  1720 I wztest  : 	at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:317)
05-25 22:10:44.125  1587  1720 I wztest  : 	at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2919)
05-25 22:10:44.125  1587  1720 I wztest  : 	at android.os.Binder.execTransact(Binder.java:697)
05-25 22:10:44.125  1587  1720 I wztest  : ActivityStackSupervisor realStartActivityLocked
05-25 22:10:44.125  1587  1720 I wztest  : java.lang.Exception
05-25 22:10:44.125  1587  1720 I wztest  : 	at com.android.server.am.ActivityStackSupervisor.realStartActivityLocked(ActivityStackSupervisor.java:1315)
05-25 22:10:44.125  1587  1720 I wztest  : 	at com.android.server.am.ActivityStackSupervisor.startSpecificActivityLocked(ActivityStackSupervisor.java:1581)
05-25 22:10:44.125  1587  1720 I wztest  : 	at com.android.server.am.ActivityStack.resumeTopActivityInnerLocked(ActivityStack.java:2726)
05-25 22:10:44.125  1587  1720 I wztest  : 	at com.android.server.am.ActivityStack.resumeTopActivityUncheckedLocked(ActivityStack.java:2255)
05-25 22:10:44.125  1587  1720 I wztest  : 	at com.android.server.am.ActivityStackSupervisor.resumeFocusedStackTopActivityLocked(ActivityStackSupervisor.java:2097)
05-25 22:10:44.125  1587  1720 I wztest  : 	at com.android.server.am.ActivityStack.completePauseLocked(ActivityStack.java:1486)
05-25 22:10:44.125  1587  1720 I wztest  : 	at com.android.server.am.ActivityStack.activityPausedLocked(ActivityStack.java:1413)
05-25 22:10:44.125  1587  1720 I wztest  : 	at com.android.server.am.ActivityManagerService.activityPaused(ActivityManagerService.java:7441)
05-25 22:10:44.125  1587  1720 I wztest  : 	at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:317)
05-25 22:10:44.125  1587  1720 I wztest  : 	at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2919)
05-25 22:10:44.125  1587  1720 I wztest  : 	at android.os.Binder.execTransact(Binder.java:697)
05-25 22:10:44.126  2210  2223 I wztest  : ApplicationThread scheduleLaunchActivity
05-25 22:10:44.126  2210  2223 I wztest  : java.lang.Exception
05-25 22:10:44.126  2210  2223 I wztest  : 	at android.app.ActivityThread$ApplicationThread.scheduleLaunchActivity(ActivityThread.java:788)
05-25 22:10:44.126  2210  2223 I wztest  : 	at android.app.IApplicationThread$Stub.onTransact(IApplicationThread.java:196)
05-25 22:10:44.126  2210  2223 I wztest  : 	at android.os.Binder.execTransact(Binder.java:697)
05-25 22:10:44.129  2210  2210 I wztest  : Activity onCreate
05-25 22:10:44.129  2210  2210 I wztest  : java.lang.Exception
05-25 22:10:44.129  2210  2210 I wztest  : 	at android.app.Activity.onCreate(Activity.java:990)
05-25 22:10:44.129  2210  2210 I wztest  : 	at android.support.v4.app.SupportActivity.onCreate(SupportActivity.java:66)
05-25 22:10:44.129  2210  2210 I wztest  : 	at android.support.v4.app.FragmentActivity.onCreate(FragmentActivity.java:290)
05-25 22:10:44.129  2210  2210 I wztest  : 	at android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.java:84)
05-25 22:10:44.129  2210  2210 I wztest  : 	at com.android.contacts.activities.AppCompatTransactionSafeActivity.onCreate(AppCompatTransactionSafeActivity.java:33)
05-25 22:10:44.129  2210  2210 I wztest  : 	at com.android.contacts.AppCompatContactsActivity.onCreate(AppCompatContactsActivity.java:81)
05-25 22:10:44.129  2210  2210 I wztest  : 	at com.android.contacts.activities.ContactEditorActivity.onCreate(ContactEditorActivity.java:315)
05-25 22:10:44.129  2210  2210 I wztest  : 	at android.app.Activity.performCreate(Activity.java:7000)
05-25 22:10:44.129  2210  2210 I wztest  : 	at android.app.Activity.performCreate(Activity.java:6991)
05-25 22:10:44.129  2210  2210 I wztest  : 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1214)
05-25 22:10:44.129  2210  2210 I wztest  : 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2732)
05-25 22:10:44.129  2210  2210 I wztest  : 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2857)
05-25 22:10:44.129  2210  2210 I wztest  : 	at android.app.ActivityThread.-wrap11(Unknown Source:0)
05-25 22:10:44.129  2210  2210 I wztest  : 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1590)
05-25 22:10:44.129  2210  2210 I wztest  : 	at android.os.Handler.dispatchMessage(Handler.java:106)
05-25 22:10:44.129  2210  2210 I wztest  : 	at android.os.Looper.loop(Looper.java:164)
05-25 22:10:44.129  2210  2210 I wztest  : 	at android.app.ActivityThread.main(ActivityThread.java:6495)
05-25 22:10:44.129  2210  2210 I wztest  : 	at java.lang.reflect.Method.invoke(Native Method)
05-25 22:10:44.129  2210  2210 I wztest  : 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
05-25 22:10:44.129  2210  2210 I wztest  : 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)

总结ActivitystartActivity,调用至ApplicationThread的过程如下:

调用过程

猜你喜欢

转载自blog.csdn.net/u014084081/article/details/130866829