summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/tests/bugreports/src/com/android/os/bugreports/tests/BugreportManagerTest.java2
-rw-r--r--services/core/java/com/android/server/wm/TransitionTracer.java18
-rw-r--r--services/core/java/com/android/server/wm/WindowManagerShellCommand.java3
3 files changed, 23 insertions, 0 deletions
diff --git a/core/tests/bugreports/src/com/android/os/bugreports/tests/BugreportManagerTest.java b/core/tests/bugreports/src/com/android/os/bugreports/tests/BugreportManagerTest.java
index 180a312a3f2b..bf8c7c63590f 100644
--- a/core/tests/bugreports/src/com/android/os/bugreports/tests/BugreportManagerTest.java
+++ b/core/tests/bugreports/src/com/android/os/bugreports/tests/BugreportManagerTest.java
@@ -108,8 +108,10 @@ public class BugreportManagerTest {
Paths.get("/data/misc/wmtrace/ime_trace_managerservice.winscope"),
Paths.get("/data/misc/wmtrace/ime_trace_service.winscope"),
Paths.get("/data/misc/wmtrace/wm_trace.winscope"),
+ Paths.get("/data/misc/wmtrace/wm_log.winscope"),
Paths.get("/data/misc/wmtrace/layers_trace.winscope"),
Paths.get("/data/misc/wmtrace/transactions_trace.winscope"),
+ Paths.get("/data/misc/wmtrace/transition_trace.winscope"),
};
private static final Path[] UI_TRACES_GENERATED_DURING_BUGREPORT = {
Paths.get("/data/misc/wmtrace/layers_trace_from_transactions.winscope"),
diff --git a/services/core/java/com/android/server/wm/TransitionTracer.java b/services/core/java/com/android/server/wm/TransitionTracer.java
index 57c0d65b28ea..a4c931c17a66 100644
--- a/services/core/java/com/android/server/wm/TransitionTracer.java
+++ b/services/core/java/com/android/server/wm/TransitionTracer.java
@@ -365,6 +365,24 @@ public class TransitionTracer {
Trace.endSection();
}
+ /**
+ * Being called while taking a bugreport so that tracing files can be included in the bugreport.
+ *
+ * @param pw Print writer
+ */
+ public void saveForBugreport(@Nullable PrintWriter pw) {
+ if (IS_USER) {
+ LogAndPrintln.e(pw, "Tracing is not supported on user builds.");
+ return;
+ }
+ Trace.beginSection("TransitionTracer#saveForBugreport");
+ synchronized (mEnabledLock) {
+ final File outputFile = new File(TRACE_FILE);
+ writeTraceToFileLocked(pw, outputFile);
+ }
+ Trace.endSection();
+ }
+
boolean isActiveTracingEnabled() {
return mActiveTracingEnabled;
}
diff --git a/services/core/java/com/android/server/wm/WindowManagerShellCommand.java b/services/core/java/com/android/server/wm/WindowManagerShellCommand.java
index 437af4b4ac76..a153708c98d5 100644
--- a/services/core/java/com/android/server/wm/WindowManagerShellCommand.java
+++ b/services/core/java/com/android/server/wm/WindowManagerShellCommand.java
@@ -1301,6 +1301,9 @@ public class WindowManagerShellCommand extends ShellCommand {
case "stop":
mInternal.mTransitionTracer.stopTrace(pw);
break;
+ case "save-for-bugreport":
+ mInternal.mTransitionTracer.saveForBugreport(pw);
+ break;
default:
getErrPrintWriter()
.println("Error: expected 'start' or 'stop', but got '" + arg + "'");