diff options
| author | 2021-05-04 17:11:51 +0800 | |
|---|---|---|
| committer | 2021-07-23 07:50:54 +0000 | |
| commit | d117271e6a3fc716bd84f35b6c26ae4dba452b13 (patch) | |
| tree | 89eee4e2df48ee7bddad982e31c466b17ae1de38 | |
| parent | 184c61395ec061c7a73017daae73458daa774c30 (diff) | |
Use elapsed time as timestamp of activity launch
To have the information of the relation to wall time.
Bug: 187043447
Test: atest ActivityMetricsLoggerTests
Change-Id: Ib9724b83698c5ada372cd5f0db5f4aa7a26e75b5
| -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)", |