Loading services/core/java/com/android/server/wm/ActivityMetricsLogger.java +3 −13 Original line number Diff line number Diff line Loading @@ -80,7 +80,6 @@ import android.content.pm.IncrementalStatesInfo; import android.content.pm.dex.ArtManagerInternal; import android.content.pm.dex.PackageOptimizationInfo; import android.metrics.LogMaker; import android.os.Binder; import android.os.Handler; import android.os.Looper; import android.os.SystemClock; Loading Loading @@ -507,22 +506,13 @@ class ActivityMetricsLogger { return notifyActivityLaunching(intent, null /* caller */, IGNORE_CALLER); } /** * If the caller is found in an active transition, it will be considered as consecutive launch * and coalesced into the active transition. * * @see #notifyActivityLaunching(Intent, ActivityRecord, int) */ LaunchingState notifyActivityLaunching(Intent intent, @Nullable ActivityRecord caller) { return notifyActivityLaunching(intent, caller, Binder.getCallingUid()); } /** * Notifies the tracker at the earliest possible point when we are starting to launch an * activity. The caller must ensure that {@link #notifyActivityLaunched} will be called later * with the returned {@link LaunchingState}. * with the returned {@link LaunchingState}. If the caller is found in an active transition, * it will be considered as consecutive launch and coalesced into the active transition. */ private LaunchingState notifyActivityLaunching(Intent intent, @Nullable ActivityRecord caller, LaunchingState notifyActivityLaunching(Intent intent, @Nullable ActivityRecord caller, int callingUid) { final long transitionStartTimeNs = SystemClock.elapsedRealtimeNanos(); TransitionInfo existingInfo = null; Loading services/core/java/com/android/server/wm/ActivityStarter.java +3 −1 Original line number Diff line number Diff line Loading @@ -617,8 +617,10 @@ class ActivityStarter { final LaunchingState launchingState; synchronized (mService.mGlobalLock) { final ActivityRecord caller = ActivityRecord.forTokenLocked(mRequest.resultTo); final int callingUid = mRequest.realCallingUid == Request.DEFAULT_REAL_CALLING_UID ? Binder.getCallingUid() : mRequest.realCallingUid; launchingState = mSupervisor.getActivityMetricsLogger().notifyActivityLaunching( mRequest.intent, caller); mRequest.intent, caller, callingUid); } // If the caller hasn't already resolved the activity, we're willing Loading services/tests/wmtests/src/com/android/server/wm/ActivityMetricsLaunchObserverTests.java +4 −3 Original line number Diff line number Diff line Loading @@ -306,7 +306,8 @@ public class ActivityMetricsLaunchObserverTests extends WindowTestsBase { private void notifyActivityLaunching(Intent intent) { final ActivityMetricsLogger.LaunchingState previousState = mLaunchingState; mLaunchingState = mActivityMetricsLogger.notifyActivityLaunching(intent, mLaunchTopByTrampoline ? mTrampolineActivity : null /* caller */); mLaunchTopByTrampoline ? mTrampolineActivity : null /* caller */, mLaunchTopByTrampoline ? mTrampolineActivity.getUid() : 0); if (mLaunchTopByTrampoline) { // The transition of TrampolineActivity has not been completed, so when the next // activity is starting from it, the same launching state should be returned. Loading Loading @@ -429,7 +430,7 @@ public class ActivityMetricsLaunchObserverTests extends WindowTestsBase { .setCreateTask(true) .build(); mActivityMetricsLogger.notifyActivityLaunching(activityOnNewTask.intent, mTrampolineActivity /* caller */); mTrampolineActivity /* caller */, mTrampolineActivity.getUid()); notifyActivityLaunched(START_SUCCESS, activityOnNewTask); transitToDrawnAndVerifyOnLaunchFinished(activityOnNewTask); Loading @@ -453,7 +454,7 @@ public class ActivityMetricsLaunchObserverTests extends WindowTestsBase { // Before TopActivity is drawn, it launches another activity on a different display. mActivityMetricsLogger.notifyActivityLaunching(activityOnNewDisplay.intent, mTopActivity /* caller */); mTopActivity /* caller */, mTopActivity.getUid()); notifyActivityLaunched(START_SUCCESS, activityOnNewDisplay); // There should be 2 events instead of coalescing as one event. Loading Loading
services/core/java/com/android/server/wm/ActivityMetricsLogger.java +3 −13 Original line number Diff line number Diff line Loading @@ -80,7 +80,6 @@ import android.content.pm.IncrementalStatesInfo; import android.content.pm.dex.ArtManagerInternal; import android.content.pm.dex.PackageOptimizationInfo; import android.metrics.LogMaker; import android.os.Binder; import android.os.Handler; import android.os.Looper; import android.os.SystemClock; Loading Loading @@ -507,22 +506,13 @@ class ActivityMetricsLogger { return notifyActivityLaunching(intent, null /* caller */, IGNORE_CALLER); } /** * If the caller is found in an active transition, it will be considered as consecutive launch * and coalesced into the active transition. * * @see #notifyActivityLaunching(Intent, ActivityRecord, int) */ LaunchingState notifyActivityLaunching(Intent intent, @Nullable ActivityRecord caller) { return notifyActivityLaunching(intent, caller, Binder.getCallingUid()); } /** * Notifies the tracker at the earliest possible point when we are starting to launch an * activity. The caller must ensure that {@link #notifyActivityLaunched} will be called later * with the returned {@link LaunchingState}. * with the returned {@link LaunchingState}. If the caller is found in an active transition, * it will be considered as consecutive launch and coalesced into the active transition. */ private LaunchingState notifyActivityLaunching(Intent intent, @Nullable ActivityRecord caller, LaunchingState notifyActivityLaunching(Intent intent, @Nullable ActivityRecord caller, int callingUid) { final long transitionStartTimeNs = SystemClock.elapsedRealtimeNanos(); TransitionInfo existingInfo = null; Loading
services/core/java/com/android/server/wm/ActivityStarter.java +3 −1 Original line number Diff line number Diff line Loading @@ -617,8 +617,10 @@ class ActivityStarter { final LaunchingState launchingState; synchronized (mService.mGlobalLock) { final ActivityRecord caller = ActivityRecord.forTokenLocked(mRequest.resultTo); final int callingUid = mRequest.realCallingUid == Request.DEFAULT_REAL_CALLING_UID ? Binder.getCallingUid() : mRequest.realCallingUid; launchingState = mSupervisor.getActivityMetricsLogger().notifyActivityLaunching( mRequest.intent, caller); mRequest.intent, caller, callingUid); } // If the caller hasn't already resolved the activity, we're willing Loading
services/tests/wmtests/src/com/android/server/wm/ActivityMetricsLaunchObserverTests.java +4 −3 Original line number Diff line number Diff line Loading @@ -306,7 +306,8 @@ public class ActivityMetricsLaunchObserverTests extends WindowTestsBase { private void notifyActivityLaunching(Intent intent) { final ActivityMetricsLogger.LaunchingState previousState = mLaunchingState; mLaunchingState = mActivityMetricsLogger.notifyActivityLaunching(intent, mLaunchTopByTrampoline ? mTrampolineActivity : null /* caller */); mLaunchTopByTrampoline ? mTrampolineActivity : null /* caller */, mLaunchTopByTrampoline ? mTrampolineActivity.getUid() : 0); if (mLaunchTopByTrampoline) { // The transition of TrampolineActivity has not been completed, so when the next // activity is starting from it, the same launching state should be returned. Loading Loading @@ -429,7 +430,7 @@ public class ActivityMetricsLaunchObserverTests extends WindowTestsBase { .setCreateTask(true) .build(); mActivityMetricsLogger.notifyActivityLaunching(activityOnNewTask.intent, mTrampolineActivity /* caller */); mTrampolineActivity /* caller */, mTrampolineActivity.getUid()); notifyActivityLaunched(START_SUCCESS, activityOnNewTask); transitToDrawnAndVerifyOnLaunchFinished(activityOnNewTask); Loading @@ -453,7 +454,7 @@ public class ActivityMetricsLaunchObserverTests extends WindowTestsBase { // Before TopActivity is drawn, it launches another activity on a different display. mActivityMetricsLogger.notifyActivityLaunching(activityOnNewDisplay.intent, mTopActivity /* caller */); mTopActivity /* caller */, mTopActivity.getUid()); notifyActivityLaunched(START_SUCCESS, activityOnNewDisplay); // There should be 2 events instead of coalescing as one event. Loading