diff options
| -rw-r--r-- | services/core/java/com/android/server/wm/ActivityMetricsLogger.java | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/services/core/java/com/android/server/wm/ActivityMetricsLogger.java b/services/core/java/com/android/server/wm/ActivityMetricsLogger.java index f6217bc2ffd2..49a0f9233acb 100644 --- a/services/core/java/com/android/server/wm/ActivityMetricsLogger.java +++ b/services/core/java/com/android/server/wm/ActivityMetricsLogger.java @@ -906,9 +906,11 @@ class ActivityMetricsLogger { // This will avoid any races with other operations that modify the ActivityRecord. final TransitionInfoSnapshot infoSnapshot = new TransitionInfoSnapshot(info); if (info.isInterestingToLoggerAndObserver()) { + final long timestamp = info.mTransitionStartTimeNs; + final long uptime = info.mTransitionDeviceUptimeMs; + final int transitionDelay = info.mCurrentTransitionDelayMs; mLoggerHandler.post(() -> logAppTransition( - info.mTransitionDeviceUptimeMs, info.mCurrentTransitionDelayMs, - infoSnapshot, isHibernating)); + timestamp, uptime, transitionDelay, infoSnapshot, isHibernating)); } mLoggerHandler.post(() -> logAppDisplayed(infoSnapshot)); if (info.mPendingFullyDrawn != null) { @@ -919,8 +921,8 @@ class ActivityMetricsLogger { } // This gets called on another thread without holding the activity manager lock. - private void logAppTransition(long transitionDeviceUptimeMs, int currentTransitionDelayMs, - TransitionInfoSnapshot info, boolean isHibernating) { + private void logAppTransition(long transitionStartTimeNs, long transitionDeviceUptimeMs, + int currentTransitionDelayMs, TransitionInfoSnapshot info, boolean isHibernating) { final LogMaker builder = new LogMaker(APP_TRANSITION); builder.setPackageName(info.packageName); builder.setType(info.type); @@ -971,7 +973,7 @@ class ActivityMetricsLogger { info.launchedActivityName, info.launchedActivityLaunchedFromPackage, isInstantApp, - transitionDeviceUptimeMs, + 0 /* deprecated transitionDeviceUptimeMs */, info.reason, currentTransitionDelayMs, info.startingWindowDelayMs, @@ -985,7 +987,8 @@ class ActivityMetricsLogger { isHibernating, isIncremental, isLoading, - info.launchedActivityName.hashCode()); + info.launchedActivityName.hashCode(), + TimeUnit.NANOSECONDS.toMillis(transitionStartTimeNs)); if (DEBUG_METRICS) { Slog.i(TAG, String.format("APP_START_OCCURRED(%s, %s, %s, %s, %s)", |