Activity's startActivity method call process
Using the method of step-by-step tracking of the calling process
The call process from App's startActivity to AMS
IActivityManager.java
The classes are automatically generated by the AIDL tool at compile time and are located in/frameworks/base/core/java/android/app/IActivityManager.aidl
ActivityManagerService
Inherited from IActivityManager.Stub
, representing the server
public class ActivityManagerService extends IActivityManager.Stub
startActivity
It can be seen that the method of AMS will eventually be called
In the same way, add a log, start the page of adding a new contact in the contacts app, and the log output is as follows:
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)
Activity
In summary startActivity
, the calling ApplicationThread
process is as follows: