Merge "Use elapsed time as timestamp of activity launch" into sc-dev

This commit is contained in:
Riddle Hsu
2021-07-23 11:26:54 +00:00
committed by Android (Google) Code Review

View File

@@ -933,9 +933,11 @@ class ActivityMetricsLogger {
// This will avoid any races with other operations that modify the ActivityRecord. // This will avoid any races with other operations that modify the ActivityRecord.
final TransitionInfoSnapshot infoSnapshot = new TransitionInfoSnapshot(info); final TransitionInfoSnapshot infoSnapshot = new TransitionInfoSnapshot(info);
if (info.isInterestingToLoggerAndObserver()) { if (info.isInterestingToLoggerAndObserver()) {
final long timestamp = info.mTransitionStartTimeNs;
final long uptime = info.mTransitionDeviceUptimeMs;
final int transitionDelay = info.mCurrentTransitionDelayMs;
mLoggerHandler.post(() -> logAppTransition( mLoggerHandler.post(() -> logAppTransition(
info.mTransitionDeviceUptimeMs, info.mCurrentTransitionDelayMs, timestamp, uptime, transitionDelay, infoSnapshot, isHibernating));
infoSnapshot, isHibernating));
} }
mLoggerHandler.post(() -> logAppDisplayed(infoSnapshot)); mLoggerHandler.post(() -> logAppDisplayed(infoSnapshot));
if (info.mPendingFullyDrawn != null) { if (info.mPendingFullyDrawn != null) {
@@ -946,8 +948,8 @@ class ActivityMetricsLogger {
} }
// This gets called on another thread without holding the activity manager lock. // This gets called on another thread without holding the activity manager lock.
private void logAppTransition(long transitionDeviceUptimeMs, int currentTransitionDelayMs, private void logAppTransition(long transitionStartTimeNs, long transitionDeviceUptimeMs,
TransitionInfoSnapshot info, boolean isHibernating) { int currentTransitionDelayMs, TransitionInfoSnapshot info, boolean isHibernating) {
final LogMaker builder = new LogMaker(APP_TRANSITION); final LogMaker builder = new LogMaker(APP_TRANSITION);
builder.setPackageName(info.packageName); builder.setPackageName(info.packageName);
builder.setType(info.type); builder.setType(info.type);
@@ -998,7 +1000,7 @@ class ActivityMetricsLogger {
info.launchedActivityName, info.launchedActivityName,
info.launchedActivityLaunchedFromPackage, info.launchedActivityLaunchedFromPackage,
isInstantApp, isInstantApp,
transitionDeviceUptimeMs, 0 /* deprecated transitionDeviceUptimeMs */,
info.reason, info.reason,
currentTransitionDelayMs, currentTransitionDelayMs,
info.startingWindowDelayMs, info.startingWindowDelayMs,
@@ -1012,7 +1014,8 @@ class ActivityMetricsLogger {
isHibernating, isHibernating,
isIncremental, isIncremental,
isLoading, isLoading,
info.launchedActivityName.hashCode()); info.launchedActivityName.hashCode(),
TimeUnit.NANOSECONDS.toMillis(transitionStartTimeNs));
if (DEBUG_METRICS) { if (DEBUG_METRICS) {
Slog.i(TAG, String.format("APP_START_OCCURRED(%s, %s, %s, %s, %s)", Slog.i(TAG, String.format("APP_START_OCCURRED(%s, %s, %s, %s, %s)",