diff options
author | 2024-07-08 22:56:05 +0000 | |
---|---|---|
committer | 2024-07-08 22:56:05 +0000 | |
commit | c7c024121b368b4815c67b05c080a80f92a75a44 (patch) | |
tree | 76fadd2d12f96b0588be28fb7d7ca4b3bc0cdc19 | |
parent | c7aa0be40fba631117882fa7cc380ea9394f372f (diff) | |
parent | 3b5da2c4af8a5f5070803149ea3c53458768efb6 (diff) |
Merge "Add analagous finish activity traces in the client side" into main
-rw-r--r-- | core/java/android/app/Activity.java | 4 | ||||
-rw-r--r-- | core/java/android/app/Instrumentation.java | 2 | ||||
-rw-r--r-- | libs/WindowManager/Shell/src/com/android/wm/shell/docs/debugging.md | 15 |
3 files changed, 20 insertions, 1 deletions
diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java index 0947e33cb4d1..5a3a8d525b69 100644 --- a/core/java/android/app/Activity.java +++ b/core/java/android/app/Activity.java @@ -21,6 +21,7 @@ import static android.Manifest.permission.DETECT_SCREEN_CAPTURE; import static android.Manifest.permission.INTERACT_ACROSS_USERS; import static android.Manifest.permission.INTERACT_ACROSS_USERS_FULL; import static android.Manifest.permission.INTERNAL_SYSTEM_WINDOW; +import static android.app.Instrumentation.DEBUG_FINISH_ACTIVITY; import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED; import static android.app.WindowConfiguration.inMultiWindowMode; import static android.os.Process.myUid; @@ -7297,6 +7298,9 @@ public class Activity extends ContextThemeWrapper */ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) private void finish(int finishTask) { + if (DEBUG_FINISH_ACTIVITY) { + Log.d("Instrumentation", "finishActivity: finishTask=" + finishTask, new Throwable()); + } if (mParent == null) { int resultCode; Intent resultData; diff --git a/core/java/android/app/Instrumentation.java b/core/java/android/app/Instrumentation.java index db216b1af974..be270463e576 100644 --- a/core/java/android/app/Instrumentation.java +++ b/core/java/android/app/Instrumentation.java @@ -107,6 +107,8 @@ public class Instrumentation { // If set, will print the stack trace for activity starts within the process static final boolean DEBUG_START_ACTIVITY = Build.IS_DEBUGGABLE && SystemProperties.getBoolean("persist.wm.debug.start_activity", false); + static final boolean DEBUG_FINISH_ACTIVITY = Build.IS_DEBUGGABLE && + SystemProperties.getBoolean("persist.wm.debug.finish_activity", false); /** * @hide diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/docs/debugging.md b/libs/WindowManager/Shell/src/com/android/wm/shell/docs/debugging.md index b1cbe8d98397..3572d161f5b9 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/docs/debugging.md +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/docs/debugging.md @@ -97,7 +97,7 @@ adb reboot adb logcat -s "SurfaceControlRegistry" ``` -## Tracing activity starts in the app process +## Tracing activity starts & finishes in the app process It's sometimes useful to know when to see a stack trace of when an activity starts in the app code (ie. if you are repro'ing a bug related to activity starts). You can enable this system property to @@ -113,6 +113,19 @@ adb shell setprop persist.wm.debug.start_activity \"\" adb reboot ``` +Likewise, to trace where a finish() call may be made in the app process, you can enable this system +property: +```shell +# Enabling +adb shell setprop persist.wm.debug.finish_activity true +adb reboot +adb logcat -s "Instrumentation" + +# Disabling +adb shell setprop persist.wm.debug.finish_activity \"\" +adb reboot +``` + ## Dumps Because the Shell library is built as a part of SystemUI, dumping the state is currently done as a |