AM: Report launch state with activity launch info
Bug: 119988524
Test: atest ActivityMetricsLoggerTests
Test: adb shell am start -W ...
Change-Id: I1d323e84d725722a198a60c51884dba897ec253f
diff --git a/services/core/java/com/android/server/wm/ActivityMetricsLogger.java b/services/core/java/com/android/server/wm/ActivityMetricsLogger.java
index 12690a9..1023182 100644
--- a/services/core/java/com/android/server/wm/ActivityMetricsLogger.java
+++ b/services/core/java/com/android/server/wm/ActivityMetricsLogger.java
@@ -3,6 +3,9 @@
import static android.app.ActivityManager.START_SUCCESS;
import static android.app.ActivityManager.START_TASK_TO_FRONT;
import static android.app.ActivityManager.processStateAmToProto;
+import static android.app.WaitResult.LAUNCH_STATE_COLD;
+import static android.app.WaitResult.LAUNCH_STATE_HOT;
+import static android.app.WaitResult.LAUNCH_STATE_WARM;
import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM;
import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED;
@@ -80,6 +83,7 @@
import static com.android.server.wm.ActivityTaskManagerDebugConfig.TAG_WITH_CLASS_NAME;
import static com.android.server.wm.ActivityTaskManagerInternal.APP_TRANSITION_TIMEOUT;
+import android.app.WaitResult;
import android.app.WindowConfiguration.WindowingMode;
import android.content.Context;
import android.content.Intent;
@@ -101,10 +105,10 @@
import android.util.TimeUtils;
import android.util.proto.ProtoOutputStream;
+import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.os.BackgroundThread;
import com.android.internal.os.SomeArgs;
-import com.android.internal.annotations.VisibleForTesting;
import com.android.server.LocalServices;
/**
@@ -259,6 +263,19 @@
activityRecordIdHashCode = System.identityHashCode(launchedActivity);
this.windowsFullyDrawnDelayMs = windowsFullyDrawnDelayMs;
}
+
+ @WaitResult.LaunchState int getLaunchState() {
+ switch (type) {
+ case TYPE_TRANSITION_WARM_LAUNCH:
+ return LAUNCH_STATE_WARM;
+ case TYPE_TRANSITION_HOT_LAUNCH:
+ return LAUNCH_STATE_HOT;
+ case TYPE_TRANSITION_COLD_LAUNCH:
+ return LAUNCH_STATE_COLD;
+ default:
+ return -1;
+ }
+ }
}
ActivityMetricsLogger(ActivityStackSupervisor supervisor, Context context, Looper looper) {