diff options
3 files changed, 12 insertions, 51 deletions
diff --git a/core/java/com/android/internal/jank/FrameTracker.java b/core/java/com/android/internal/jank/FrameTracker.java index 85dc2aea4b1c..c0d46f632500 100644 --- a/core/java/com/android/internal/jank/FrameTracker.java +++ b/core/java/com/android/internal/jank/FrameTracker.java @@ -176,7 +176,7 @@ public class FrameTracker implements HardwareRendererObserver.OnFrameMetricsAvai * Trigger the prefetto daemon. */ public void triggerPerfetto() { - InteractionJankMonitor.getInstance().trigger(); + InteractionJankMonitor.getInstance().trigger(mSession); } /** diff --git a/core/java/com/android/internal/jank/InteractionJankMonitor.java b/core/java/com/android/internal/jank/InteractionJankMonitor.java index 3624f0d34725..ba07863a292d 100644 --- a/core/java/com/android/internal/jank/InteractionJankMonitor.java +++ b/core/java/com/android/internal/jank/InteractionJankMonitor.java @@ -319,11 +319,11 @@ public class InteractionJankMonitor { * Trigger the perfetto daemon to collect and upload data. */ @VisibleForTesting - public void trigger() { + public void trigger(Session session) { synchronized (this) { if (!mInitialized) return; mWorker.getThreadHandler().post( - () -> PerfettoTrigger.trigger(PerfettoTrigger.TRIGGER_TYPE_JANK)); + () -> PerfettoTrigger.trigger(session.getPerfettoTrigger())); } } @@ -350,9 +350,12 @@ public class InteractionJankMonitor { return getStatsdInteractionType() != NO_STATSD_LOGGING; } + public String getPerfettoTrigger() { + return String.format("interaction-jank-monitor-%d", mCujType); + } + public String getName() { return "Cuj<" + getCuj() + ">"; } } - } diff --git a/core/java/com/android/internal/jank/PerfettoTrigger.java b/core/java/com/android/internal/jank/PerfettoTrigger.java index 6c8d3cdcf5ae..643d24a51b58 100644 --- a/core/java/com/android/internal/jank/PerfettoTrigger.java +++ b/core/java/com/android/internal/jank/PerfettoTrigger.java @@ -17,15 +17,12 @@ //TODO (165884885): Make PerfettoTrigger more generic and move it to another package. package com.android.internal.jank; -import android.annotation.IntDef; import android.annotation.NonNull; import android.util.Log; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; /** * A trigger implementation with perfetto backend. @@ -35,23 +32,14 @@ public class PerfettoTrigger { private static final String TAG = PerfettoTrigger.class.getSimpleName(); private static final boolean DEBUG = false; private static final String TRIGGER_COMMAND = "/system/bin/trigger_perfetto"; - private static final String[] TRIGGER_TYPE_NAMES = new String[] { "jank-tracker" }; - public static final int TRIGGER_TYPE_JANK = 0; - - /** @hide */ - @IntDef({ - TRIGGER_TYPE_JANK - }) - @Retention(RetentionPolicy.SOURCE) - public @interface TriggerType {} /** - * @param type the trigger type + * @param triggerName The name of the trigger. Must match the value defined in the AOT + * Perfetto config. */ - public static void trigger(@NonNull @TriggerType int type) { + public static void trigger(String triggerName) { try { - Token token = new Token(type, TRIGGER_TYPE_NAMES[type]); - ProcessBuilder pb = new ProcessBuilder(TRIGGER_COMMAND, token.getName()); + ProcessBuilder pb = new ProcessBuilder(TRIGGER_COMMAND, triggerName); if (DEBUG) { StringBuilder sb = new StringBuilder(); for (String arg : pb.command()) { @@ -64,7 +52,7 @@ public class PerfettoTrigger { readConsoleOutput(process); } } catch (IOException | InterruptedException e) { - Log.w(TAG, "Failed to trigger " + type, e); + Log.w(TAG, "Failed to trigger " + triggerName, e); } } @@ -82,34 +70,4 @@ public class PerfettoTrigger { Log.d(TAG, "err message=" + errLine.toString()); } } - - /** - * Token which is used to trigger perfetto. - */ - public static class Token { - private int mType; - private String mName; - - Token(@TriggerType int type, String name) { - mType = type; - mName = name; - } - - /** - * Get trigger type. - * @return trigger type, should be @TriggerType - */ - public int getType() { - return mType; - } - - /** - * Get name of this token as the argument while triggering perfetto. - * @return name - */ - public String getName() { - return mName; - } - } - } |