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
This commit is contained in:
Riddle Hsu
2021-05-04 17:11:51 +08:00
parent 184c61395e
commit d117271e6a

View File

@@ -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)",