diff options
-rw-r--r-- | services/core/java/com/android/server/am/ActivityManagerService.java | 16 | ||||
-rw-r--r-- | services/core/java/com/android/server/wm/ActivityStackSupervisor.java | 20 |
2 files changed, 26 insertions, 10 deletions
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index 98f2c9f21f3a..bfe1f6ad6390 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -17925,10 +17925,18 @@ public class ActivityManagerService extends IActivityManager.Stub @Override public void startProcess(String processName, ApplicationInfo info, boolean knownToBeDead, String hostingType, ComponentName hostingName) { - synchronized (ActivityManagerService.this) { - startProcessLocked(processName, info, knownToBeDead, 0 /* intentFlags */, - hostingType, hostingName, false /* allowWhileBooting */, - false /* isolated */, true /* keepIfLarge */); + try { + if (Trace.isTagEnabled(Trace.TRACE_TAG_ACTIVITY_MANAGER)) { + Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, "startProcess:" + + processName); + } + synchronized (ActivityManagerService.this) { + startProcessLocked(processName, info, knownToBeDead, 0 /* intentFlags */, + hostingType, hostingName, false /* allowWhileBooting */, + false /* isolated */, true /* keepIfLarge */); + } + } finally { + Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER); } } diff --git a/services/core/java/com/android/server/wm/ActivityStackSupervisor.java b/services/core/java/com/android/server/wm/ActivityStackSupervisor.java index c685b05e99e0..6ffd5543439c 100644 --- a/services/core/java/com/android/server/wm/ActivityStackSupervisor.java +++ b/services/core/java/com/android/server/wm/ActivityStackSupervisor.java @@ -978,12 +978,20 @@ public class ActivityStackSupervisor implements RecentTasks.Callbacks { r.notifyUnknownVisibilityLaunched(); } - // Post message to start process to avoid possible deadlock of calling into AMS with the - // ATMS lock held. - final Message msg = PooledLambda.obtainMessage( - ActivityManagerInternal::startProcess, mService.mAmInternal, r.processName, - r.info.applicationInfo, knownToBeDead, "activity", r.intent.getComponent()); - mService.mH.sendMessage(msg); + try { + if (Trace.isTagEnabled(TRACE_TAG_ACTIVITY_MANAGER)) { + Trace.traceBegin(TRACE_TAG_ACTIVITY_MANAGER, "dispatchingStartProcess:" + + r.processName); + } + // Post message to start process to avoid possible deadlock of calling into AMS with the + // ATMS lock held. + final Message msg = PooledLambda.obtainMessage( + ActivityManagerInternal::startProcess, mService.mAmInternal, r.processName, + r.info.applicationInfo, knownToBeDead, "activity", r.intent.getComponent()); + mService.mH.sendMessage(msg); + } finally { + Trace.traceEnd(TRACE_TAG_ACTIVITY_MANAGER); + } } boolean checkStartAnyActivityPermission(Intent intent, ActivityInfo aInfo, String resultWho, |