diff options
| author | Taran Singh <tarandeep@google.com> | 2020-11-03 11:48:03 -0800 |
|---|---|---|
| committer | Taran Singh <tarandeep@google.com> | 2020-11-03 12:42:54 -0800 |
| commit | 5c61eefbafeec60522b1e3d51d0fa13361099159 (patch) | |
| tree | 028e24d62562aeced2ea46a1f9137455d0ce3cbb /core/java/android/inputmethodservice/InputMethodService.java | |
| parent | a2a253995db2c584e6b153e7148a1b79b74e554d (diff) | |
Measure baseline IMF latency (2/n)
Add methods to trace.
Refer to design doc in bug.
Bug: 167947940
Test: atest ImePerfTests and also refer to README.md
Change-Id: I423e4f3f9253707d9b6d3d5a2dee260f872b879f
Diffstat (limited to 'core/java/android/inputmethodservice/InputMethodService.java')
| -rw-r--r-- | core/java/android/inputmethodservice/InputMethodService.java | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/core/java/android/inputmethodservice/InputMethodService.java b/core/java/android/inputmethodservice/InputMethodService.java index 32a8c0af0c01..44640c44332e 100644 --- a/core/java/android/inputmethodservice/InputMethodService.java +++ b/core/java/android/inputmethodservice/InputMethodService.java @@ -46,6 +46,7 @@ import static android.inputmethodservice.InputMethodServiceProto.STATUS_ICON; import static android.inputmethodservice.InputMethodServiceProto.TOKEN; import static android.inputmethodservice.InputMethodServiceProto.VIEWS_CREATED; import static android.inputmethodservice.InputMethodServiceProto.WINDOW_VISIBLE; +import static android.os.Trace.TRACE_TAG_WINDOW_MANAGER; import static android.view.ViewGroup.LayoutParams.MATCH_PARENT; import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT; import static android.view.WindowInsets.Type.navigationBars; @@ -80,6 +81,7 @@ import android.os.Handler; import android.os.IBinder; import android.os.ResultReceiver; import android.os.SystemClock; +import android.os.Trace; import android.provider.Settings; import android.text.InputType; import android.text.Layout; @@ -645,7 +647,9 @@ public class InputMethodService extends AbstractInputMethodService { @Override public void startInput(InputConnection ic, EditorInfo attribute) { if (DEBUG) Log.v(TAG, "startInput(): editor=" + attribute); + Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "IMS.startInput"); doStartInput(ic, attribute, false); + Trace.traceEnd(TRACE_TAG_WINDOW_MANAGER); } /** @@ -705,6 +709,8 @@ public class InputMethodService extends AbstractInputMethodService { return; } final boolean wasVisible = isInputViewShown(); + Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "IMS.hideSoftInput"); + applyVisibilityInInsetsConsumerIfNecessary(false /* setVisible */); mShowInputFlags = 0; mShowInputRequested = false; @@ -717,6 +723,7 @@ public class InputMethodService extends AbstractInputMethodService { : (wasVisible ? InputMethodManager.RESULT_UNCHANGED_SHOWN : InputMethodManager.RESULT_UNCHANGED_HIDDEN), null); } + Trace.traceEnd(TRACE_TAG_WINDOW_MANAGER); } /** @@ -748,6 +755,13 @@ public class InputMethodService extends AbstractInputMethodService { + " Use requestShowSelf(int) itself"); return; } + + if (Trace.isEnabled()) { + Binder.enableTracing(); + } else { + Binder.disableTracing(); + } + Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "IMS.showSoftInput"); final boolean wasVisible = isInputViewShown(); if (dispatchOnShowInputRequested(flags, false)) { @@ -764,6 +778,7 @@ public class InputMethodService extends AbstractInputMethodService { : (wasVisible ? InputMethodManager.RESULT_UNCHANGED_SHOWN : InputMethodManager.RESULT_UNCHANGED_HIDDEN), null); } + Trace.traceEnd(TRACE_TAG_WINDOW_MANAGER); } /** |
