diff options
| -rw-r--r-- | services/core/java/com/android/server/am/ActivityMetricsLogger.java | 30 | ||||
| -rw-r--r-- | services/core/java/com/android/server/am/ActivityStack.java | 2 |
2 files changed, 13 insertions, 19 deletions
diff --git a/services/core/java/com/android/server/am/ActivityMetricsLogger.java b/services/core/java/com/android/server/am/ActivityMetricsLogger.java index 18cdb054e648..0c51a39f0b88 100644 --- a/services/core/java/com/android/server/am/ActivityMetricsLogger.java +++ b/services/core/java/com/android/server/am/ActivityMetricsLogger.java @@ -155,7 +155,6 @@ class ActivityMetricsLogger { private final H mHandler; private ArtManagerInternal mArtManagerInternal; - private boolean mDrawingTraceActive; private final StringBuilder mStringBuilder = new StringBuilder(); private final class H extends Handler { @@ -496,7 +495,6 @@ class ActivityMetricsLogger { if (mWindowingModeTransitionInfo.size() == 0) { reset(true /* abort */, info); } - stopFullyDrawnTraceIfNeeded(); } } } @@ -694,6 +692,13 @@ class ActivityMetricsLogger { if (info == null) { return null; } + + // Record the handling of the reportFullyDrawn callback in the trace system. This is not + // actually used to trace this function, but instead the logical task that this function + // fullfils (handling reportFullyDrawn() callbacks). + Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, + "ActivityManager:ReportingFullyDrawn " + info.launchedActivity.packageName); + final LogMaker builder = new LogMaker(APP_TRANSITION_REPORTED_DRAWN); builder.setPackageName(r.packageName); builder.addTaggedData(FIELD_CLASS_NAME, r.info.name); @@ -715,7 +720,11 @@ class ActivityMetricsLogger { info.launchedActivity.info.name, info.currentTransitionProcessRunning, startupTimeMs); - stopFullyDrawnTraceIfNeeded(); + + // Ends the trace started at the beginning of this function. This is located here to allow + // the trace slice to have a noticable duration. + Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER); + final WindowingModeTransitionInfoSnapshot infoSnapshot = new WindowingModeTransitionInfoSnapshot(info, r, (int) startupTimeMs); BackgroundThread.getHandler().post(() -> logAppFullyDrawn(infoSnapshot)); @@ -882,10 +891,7 @@ class ActivityMetricsLogger { } /** - * Starts traces for app launch and draw times. We stop the fully drawn trace if its already - * active since the app may not have reported fully drawn in the previous launch. - * - * See {@link android.app.Activity#reportFullyDrawn()} + * Starts traces for app launch. * * @param info * */ @@ -893,14 +899,11 @@ class ActivityMetricsLogger { if (info == null) { return; } - stopFullyDrawnTraceIfNeeded(); int transitionType = getTransitionType(info); if (!info.launchTraceActive && transitionType == TYPE_TRANSITION_WARM_LAUNCH || transitionType == TYPE_TRANSITION_COLD_LAUNCH) { Trace.asyncTraceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, "launching: " + info.launchedActivity.packageName, 0); - Trace.asyncTraceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, "drawing", 0); - mDrawingTraceActive = true; info.launchTraceActive = true; } } @@ -915,11 +918,4 @@ class ActivityMetricsLogger { info.launchTraceActive = false; } } - - void stopFullyDrawnTraceIfNeeded() { - if (mDrawingTraceActive) { - Trace.asyncTraceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER, "drawing", 0); - mDrawingTraceActive = false; - } - } } diff --git a/services/core/java/com/android/server/am/ActivityStack.java b/services/core/java/com/android/server/am/ActivityStack.java index 6388423d04b4..648752cf759f 100644 --- a/services/core/java/com/android/server/am/ActivityStack.java +++ b/services/core/java/com/android/server/am/ActivityStack.java @@ -1509,8 +1509,6 @@ class ActivityStack<T extends StackWindowController> extends ConfigurationContai prev.getTask().touchActiveTime(); clearLaunchTime(prev); - mStackSupervisor.getActivityMetricsLogger().stopFullyDrawnTraceIfNeeded(); - mService.updateCpuStats(); if (prev.attachedToProcess()) { |