Loading core/java/com/android/internal/jank/FrameTracker.java +11 −2 Original line number Diff line number Diff line Loading @@ -102,6 +102,7 @@ public class FrameTracker extends SurfaceControl.OnJankDataListener private boolean mMetricsFinalized; private boolean mCancelled = false; private FrameTrackerListener mListener; private boolean mTracingStarted = false; private static class JankInfo { long frameVsyncId; Loading Loading @@ -207,7 +208,15 @@ public class FrameTracker extends SurfaceControl.OnJankDataListener public synchronized void begin() { mBeginVsyncId = mChoreographer.getVsyncId() + 1; mSession.setTimeStamp(System.nanoTime()); mChoreographer.mChoreographer.postCallback(Choreographer.CALLBACK_INPUT, () -> { synchronized (FrameTracker.this) { if (mCancelled || mEndVsyncId != INVALID_ID) { return; } mTracingStarted = true; Trace.beginAsyncSection(mSession.getName(), (int) mBeginVsyncId); } }, null); mRendererWrapper.addObserver(mObserver); if (DEBUG) { Log.d(TAG, "begin: " + mSession.getName() + ", begin=" + mBeginVsyncId); Loading Loading @@ -255,7 +264,7 @@ public class FrameTracker extends SurfaceControl.OnJankDataListener */ public synchronized void cancel(@Reasons int reason) { // We don't need to end the trace section if it never begun. if (mBeginVsyncId != INVALID_ID) { if (mTracingStarted) { Trace.endAsyncSection(mSession.getName(), (int) mBeginVsyncId); } mCancelled = true; Loading core/java/com/android/internal/jank/InteractionJankMonitor.java +6 −0 Original line number Diff line number Diff line Loading @@ -79,6 +79,12 @@ import java.util.concurrent.TimeUnit; /** * This class let users to begin and end the always on tracing mechanism. * * Enabling for local development: * * adb shell device_config put interaction_jank_monitor enabled true * adb shell device_config put interaction_jank_monitor sampling_interval 1 * * @hide */ public class InteractionJankMonitor { Loading Loading
core/java/com/android/internal/jank/FrameTracker.java +11 −2 Original line number Diff line number Diff line Loading @@ -102,6 +102,7 @@ public class FrameTracker extends SurfaceControl.OnJankDataListener private boolean mMetricsFinalized; private boolean mCancelled = false; private FrameTrackerListener mListener; private boolean mTracingStarted = false; private static class JankInfo { long frameVsyncId; Loading Loading @@ -207,7 +208,15 @@ public class FrameTracker extends SurfaceControl.OnJankDataListener public synchronized void begin() { mBeginVsyncId = mChoreographer.getVsyncId() + 1; mSession.setTimeStamp(System.nanoTime()); mChoreographer.mChoreographer.postCallback(Choreographer.CALLBACK_INPUT, () -> { synchronized (FrameTracker.this) { if (mCancelled || mEndVsyncId != INVALID_ID) { return; } mTracingStarted = true; Trace.beginAsyncSection(mSession.getName(), (int) mBeginVsyncId); } }, null); mRendererWrapper.addObserver(mObserver); if (DEBUG) { Log.d(TAG, "begin: " + mSession.getName() + ", begin=" + mBeginVsyncId); Loading Loading @@ -255,7 +264,7 @@ public class FrameTracker extends SurfaceControl.OnJankDataListener */ public synchronized void cancel(@Reasons int reason) { // We don't need to end the trace section if it never begun. if (mBeginVsyncId != INVALID_ID) { if (mTracingStarted) { Trace.endAsyncSection(mSession.getName(), (int) mBeginVsyncId); } mCancelled = true; Loading
core/java/com/android/internal/jank/InteractionJankMonitor.java +6 −0 Original line number Diff line number Diff line Loading @@ -79,6 +79,12 @@ import java.util.concurrent.TimeUnit; /** * This class let users to begin and end the always on tracing mechanism. * * Enabling for local development: * * adb shell device_config put interaction_jank_monitor enabled true * adb shell device_config put interaction_jank_monitor sampling_interval 1 * * @hide */ public class InteractionJankMonitor { Loading