1page.title=Dumpsys Input Diagnostics
2@jd:body
3
4<!--
5    Copyright 2015 The Android Open Source Project
6
7    Licensed under the Apache License, Version 2.0 (the "License");
8    you may not use this file except in compliance with the License.
9    You may obtain a copy of the License at
10
11        http://www.apache.org/licenses/LICENSE-2.0
12
13    Unless required by applicable law or agreed to in writing, software
14    distributed under the License is distributed on an "AS IS" BASIS,
15    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16    See the License for the specific language governing permissions and
17    limitations under the License.
18-->
19<div id="qv-wrapper">
20  <div id="qv">
21    <h2>In this document</h2>
22    <ol id="auto-toc">
23    </ol>
24  </div>
25</div>
26
27<p>The <code>dumpsys</code> input command dumps the state of the
28system’s input devices, such as keyboards and touchscreens, and the
29processing of input events.</p>
30
31<h2 id="input">Input</h2>
32<p>To dump the input system’s state, run the following command:</p>
33<pre>
34$ adb shell dumpsys input
35</pre>
36
37<h2 id="output">Output</h2>
38
39<p>The set of information reported varies depending on the version of Android
40but consists of three sections:</p>
41
42<ul>
43  <li> Event Hub State
44  <li> Input Reader State
45  <li> Input Dispatcher State
46</ul>
47
48<h3 id="event_hub_state">Event Hub State</h3>
49
50<pre><code>
51INPUT MANAGER (dumpsys input)
52
53Event Hub State:
54  BuiltInKeyboardId: -2
55  Devices:
56    -1: Virtual
57      Classes: 0x40000023
58      Path: <virtual>
59      Descriptor: a718a782d34bc767f4689c232d64d527998ea7fd
60      Location:
61      ControllerNumber: 0
62      UniqueId: <virtual>
63      Identifier: bus=0x0000, vendor=0x0000, product=0x0000, version=0x0000
64      KeyLayoutFile: /system/usr/keylayout/Generic.kl
65      KeyCharacterMapFile: /system/usr/keychars/Virtual.kcm
66      ConfigurationFile:
67      HaveKeyboardLayoutOverlay: false
68    1: msm8974-taiko-mtp-snd-card Headset Jack
69      Classes: 0x00000080
70      Path: /dev/input/event5
71      Descriptor: c8e3782483b4837ead6602e20483c46ff801112c
72      Location: ALSA
73      ControllerNumber: 0
74      UniqueId:
75      Identifier: bus=0x0000, vendor=0x0000, product=0x0000, version=0x0000
76      KeyLayoutFile:
77      KeyCharacterMapFile:
78      ConfigurationFile:
79      HaveKeyboardLayoutOverlay: false
80    2: msm8974-taiko-mtp-snd-card Button Jack
81      Classes: 0x00000001
82      Path: /dev/input/event4
83      Descriptor: 96fe62b244c555351ec576b282232e787fb42bab
84      Location: ALSA
85      ControllerNumber: 0
86      UniqueId:
87      Identifier: bus=0x0000, vendor=0x0000, product=0x0000, version=0x0000
88      KeyLayoutFile: /system/usr/keylayout/msm8974-taiko-mtp-snd-card_Button_Jack.kl
89      KeyCharacterMapFile: /system/usr/keychars/msm8974-taiko-mtp-snd-card_Button_Jack.kcm
90      ConfigurationFile:
91      HaveKeyboardLayoutOverlay: false
92    3: hs_detect
93      Classes: 0x00000081
94      Path: /dev/input/event3
95      Descriptor: 485d69228e24f5e46da1598745890b214130dbc4
96      Location:
97      ControllerNumber: 0
98      UniqueId:
99      Identifier: bus=0x0000, vendor=0x0001, product=0x0001, version=0x0001
100      KeyLayoutFile: /system/usr/keylayout/hs_detect.kl
101      KeyCharacterMapFile: /system/usr/keychars/hs_detect.kcm
102      ConfigurationFile:
103      HaveKeyboardLayoutOverlay: false
104    4: touch_dev
105      Classes: 0x00000014
106      Path: /dev/input/event1
107      Descriptor: 4e2720e99bd2b59adae8529881343531fff7c98e
108      Location:
109      ControllerNumber: 0
110      UniqueId:
111      Identifier: bus=0x0000, vendor=0x0000, product=0x0000, version=0x0000
112      KeyLayoutFile:
113      KeyCharacterMapFile:
114      ConfigurationFile: /system/usr/idc/touch_dev.idc
115      HaveKeyboardLayoutOverlay: false
116    5: qpnp_pon
117      Classes: 0x00000001
118      Path: /dev/input/event0
119      Descriptor: fb60d4f4370f5dbe8267b63d38dea852987571ab
120      Location: qpnp_pon/input0
121      ControllerNumber: 0
122      UniqueId:
123      Identifier: bus=0x0000, vendor=0x0000, product=0x0000, version=0x0000
124      KeyLayoutFile: /system/usr/keylayout/qpnp_pon.kl
125      KeyCharacterMapFile: /system/usr/keychars/qpnp_pon.kcm
126      ConfigurationFile:
127      HaveKeyboardLayoutOverlay: false
128    6: gpio-keys
129      Classes: 0x00000081
130      Path: /dev/input/event2
131      Descriptor: d2c52ff0f656fac4cd7b7a118d575e0109a9fe1c
132      Location: gpio-keys/input0
133      ControllerNumber: 0
134      UniqueId:
135      Identifier: bus=0x0019, vendor=0x0001, product=0x0001, version=0x0100
136      KeyLayoutFile: /system/usr/keylayout/gpio-keys.kl
137      KeyCharacterMapFile: /system/usr/keychars/gpio-keys.kcm
138      ConfigurationFile:
139      HaveKeyboardLayoutOverlay: false
140</code></pre>
141
142<h4 id="things-to-look-for">Things to check</h4>
143
144<ul>
145  <li> All of the expected input devices are present.</li>
146
147  <li> Each input device has an appropriate key layout file, key character map
148  file and input device configuration file.  If the files are missing or contain
149  syntax errors, then they will not be loaded.</li>
150
151  <li> Each input device is being classified correctly.  The bits in the
152  <code>Classes</code> field correspond to flags in <code>EventHub.h</code> such
153  as <code>INPUT_DEVICE_CLASS_TOUCH_MT</code>.</li>
154
155  <li> The <code>BuiltInKeyboardId</code> is correct.  If the device does not
156  have a built-in keyboard, then the id must be <code>-2</code>, otherwise it
157  should be the id of the built-in keyboard.</li>
158
159  <li>If you observe that the <code>BuiltInKeyboardId</code> is not
160  <code>-2</code> but it should be, then you are missing a key character map file
161  for a special function keypad somewhere.  Special function keypad devices
162  should have key character map files that contain just the line <code>type
163  SPECIAL_FUNCTION</code> (that's what in the <code>tuna-gpio-keykad.kcm</code>
164  file we see mentioned above).</li>
165</ul>
166
167<h3 id="input-reader-state">Input Reader State</h3>
168<p>The <code>InputReader</code> is responsible for decoding input events from the kernel.
169Its state dump shows information about how each input device is configured
170and recent state changes that have occurred, such as key presses or touches on
171the touch screen.</p>
172
173<p>As an example, this is what a special function keypad looks like:</p>
174
175<pre>
176Input Reader State
177...
178  Device 3: tuna-gpio-keypad
179    IsExternal: false
180    Sources: 0x00000101
181    KeyboardType: 1
182    Keyboard Input Mapper:
183      Parameters:
184        AssociatedDisplayId: -1
185        OrientationAware: false
186      KeyboardType: 1
187      Orientation: 0
188      KeyDowns: 0 keys currently down
189      MetaState: 0x0
190      DownTime: 75816923828000
191</pre>
192
193<p>Here is a touch screen.  Notice all of the information about the resolution of
194the device and the calibration parameters that were used.</p>
195
196<pre>
197Input Reader State
198...
199  Device 6: Melfas MMSxxx Touchscreen
200      IsExternal: false
201      Sources: 0x00001002
202      KeyboardType: 0
203      Motion Ranges:
204        X: source=0x00001002, min=0.000, max=719.001, flat=0.000, fuzz=0.999
205        Y: source=0x00001002, min=0.000, max=1279.001, flat=0.000, fuzz=0.999
206        PRESSURE: source=0x00001002, min=0.000, max=1.000, flat=0.000, fuzz=0.000
207        SIZE: source=0x00001002, min=0.000, max=1.000, flat=0.000, fuzz=0.000
208        TOUCH_MAJOR: source=0x00001002, min=0.000, max=1468.605, flat=0.000, fuzz=0.000
209        TOUCH_MINOR: source=0x00001002, min=0.000, max=1468.605, flat=0.000, fuzz=0.000
210        TOOL_MAJOR: source=0x00001002, min=0.000, max=1468.605, flat=0.000, fuzz=0.000
211        TOOL_MINOR: source=0x00001002, min=0.000, max=1468.605, flat=0.000, fuzz=0.000
212      Touch Input Mapper:
213        Parameters:
214          GestureMode: spots
215          DeviceType: touchScreen
216          AssociatedDisplay: id=0, isExternal=false
217          OrientationAware: true
218        Raw Touch Axes:
219          X: min=0, max=720, flat=0, fuzz=0, resolution=0
220          Y: min=0, max=1280, flat=0, fuzz=0, resolution=0
221          Pressure: min=0, max=255, flat=0, fuzz=0, resolution=0
222          TouchMajor: min=0, max=30, flat=0, fuzz=0, resolution=0
223          TouchMinor: unknown range
224          ToolMajor: unknown range
225          ToolMinor: unknown range
226          Orientation: unknown range
227          Distance: unknown range
228          TiltX: unknown range
229          TiltY: unknown range
230          TrackingId: min=0, max=65535, flat=0, fuzz=0, resolution=0
231          Slot: min=0, max=9, flat=0, fuzz=0, resolution=0
232        Calibration:
233          touch.size.calibration: diameter
234          touch.size.scale: 10.000
235          touch.size.bias: 0.000
236          touch.size.isSummed: false
237          touch.pressure.calibration: amplitude
238          touch.pressure.scale: 0.005
239          touch.orientation.calibration: none
240          touch.distance.calibration: none
241        SurfaceWidth: 720px
242        SurfaceHeight: 1280px
243        SurfaceOrientation: 0
244        Translation and Scaling Factors:
245          XScale: 0.999
246          YScale: 0.999
247          XPrecision: 1.001
248          YPrecision: 1.001
249          GeometricScale: 0.999
250          PressureScale: 0.005
251          SizeScale: 0.033
252          OrientationCenter: 0.000
253          OrientationScale: 0.000
254          DistanceScale: 0.000
255          HaveTilt: false
256          TiltXCenter: 0.000
257          TiltXScale: 0.000
258          TiltYCenter: 0.000
259          TiltYScale: 0.000
260        Last Button State: 0x00000000
261        Last Raw Touch: pointerCount=0
262        Last Cooked Touch: pointerCount=0
263</pre>
264
265<p>Here is an external keyboard / mouse combo HID device.  (This device doesn't actually
266have a mouse but its HID descriptor says it does.)</p>
267
268<pre><code>  Device 7: Motorola Bluetooth Wireless Keyboard
269    IsExternal: true
270    Sources: 0x00002103
271    KeyboardType: 2
272    Motion Ranges:
273      X: source=0x00002002, min=0.000, max=719.000, flat=0.000, fuzz=0.000
274      Y: source=0x00002002, min=0.000, max=1279.000, flat=0.000, fuzz=0.000
275      PRESSURE: source=0x00002002, min=0.000, max=1.000, flat=0.000, fuzz=0.000
276      VSCROLL: source=0x00002002, min=-1.000, max=1.000, flat=0.000, fuzz=0.000
277    Keyboard Input Mapper:
278      Parameters:
279        AssociatedDisplayId: -1
280        OrientationAware: false
281      KeyboardType: 2
282      Orientation: 0
283      KeyDowns: 0 keys currently down
284      MetaState: 0x0
285      DownTime: 75868832946000
286    Cursor Input Mapper:
287      Parameters:
288        AssociatedDisplayId: 0
289        Mode: pointer
290        OrientationAware: false
291      XScale: 1.000
292      YScale: 1.000
293      XPrecision: 1.000
294      YPrecision: 1.000
295      HaveVWheel: true
296      HaveHWheel: false
297      VWheelScale: 1.000
298      HWheelScale: 1.000
299      Orientation: 0
300      ButtonState: 0x00000000
301      Down: false
302      DownTime: 0
303</code></pre>
304<p>Here is a joystick.  Notice how all of the axes have been scaled to a normalized
305range.  The axis mapping can be configured using key layout files.</p>
306<pre><code>Device 18: Logitech Logitech Cordless RumblePad 2
307    IsExternal: true
308    Sources: 0x01000511
309    KeyboardType: 1
310    Motion Ranges:
311      X: source=0x01000010, min=-1.000, max=1.000, flat=0.118, fuzz=0.000
312      Y: source=0x01000010, min=-1.000, max=1.000, flat=0.118, fuzz=0.000
313      Z: source=0x01000010, min=-1.000, max=1.000, flat=0.118, fuzz=0.000
314      RZ: source=0x01000010, min=-1.000, max=1.000, flat=0.118, fuzz=0.000
315      HAT_X: source=0x01000010, min=-1.000, max=1.000, flat=0.000, fuzz=0.000
316      HAT_Y: source=0x01000010, min=-1.000, max=1.000, flat=0.000, fuzz=0.000
317    Keyboard Input Mapper:
318      Parameters:
319        AssociatedDisplayId: -1
320        OrientationAware: false
321      KeyboardType: 1
322      Orientation: 0
323      KeyDowns: 0 keys currently down
324      MetaState: 0x0
325      DownTime: 675270841000
326    Joystick Input Mapper:
327      Axes:
328        X: min=-1.00000, max=1.00000, flat=0.11765, fuzz=0.00000
329          scale=0.00784, offset=-1.00000, highScale=0.00784, highOffset=-1.00000
330          rawAxis=0, rawMin=0, rawMax=255, rawFlat=15, rawFuzz=0, rawResolution=0
331        Y: min=-1.00000, max=1.00000, flat=0.11765, fuzz=0.00000
332          scale=0.00784, offset=-1.00000, highScale=0.00784, highOffset=-1.00000
333          rawAxis=1, rawMin=0, rawMax=255, rawFlat=15, rawFuzz=0, rawResolution=0
334        Z: min=-1.00000, max=1.00000, flat=0.11765, fuzz=0.00000
335          scale=0.00784, offset=-1.00000, highScale=0.00784, highOffset=-1.00000
336          rawAxis=2, rawMin=0, rawMax=255, rawFlat=15, rawFuzz=0, rawResolution=0
337        RZ: min=-1.00000, max=1.00000, flat=0.11765, fuzz=0.00000
338          scale=0.00784, offset=-1.00000, highScale=0.00784, highOffset=-1.00000
339          rawAxis=5, rawMin=0, rawMax=255, rawFlat=15, rawFuzz=0, rawResolution=0
340        HAT_X: min=-1.00000, max=1.00000, flat=0.00000, fuzz=0.00000
341          scale=1.00000, offset=0.00000, highScale=1.00000, highOffset=0.00000
342          rawAxis=16, rawMin=-1, rawMax=1, rawFlat=0, rawFuzz=0, rawResolution=0
343        HAT_Y: min=-1.00000, max=1.00000, flat=0.00000, fuzz=0.00000
344          scale=1.00000, offset=0.00000, highScale=1.00000, highOffset=0.00000
345          rawAxis=17, rawMin=-1, rawMax=1, rawFlat=0, rawFuzz=0, rawResolution=0
346</code></pre>
347<p>At the end of the input reader dump there is some information about global configuration
348parameters such as the mouse pointer speed.</p>
349<pre><code>  Configuration:
350    ExcludedDeviceNames: []
351    VirtualKeyQuietTime: 0.0ms
352    PointerVelocityControlParameters: scale=1.000, lowThreshold=500.000, highThreshold=3000.000, acceleration=3.000
353    WheelVelocityControlParameters: scale=1.000, lowThreshold=15.000, highThreshold=50.000, acceleration=4.000
354    PointerGesture:
355      Enabled: true
356      QuietInterval: 100.0ms
357      DragMinSwitchSpeed: 50.0px/s
358      TapInterval: 150.0ms
359      TapDragInterval: 300.0ms
360      TapSlop: 20.0px
361      MultitouchSettleInterval: 100.0ms
362      MultitouchMinDistance: 15.0px
363      SwipeTransitionAngleCosine: 0.3
364      SwipeMaxWidthRatio: 0.2
365      MovementSpeedRatio: 0.8
366      ZoomSpeedRatio: 0.3
367</code></pre>
368<h4 id="things-to-look-for_1">Things To Look For</h4>
369<ol>
370<li>
371<p>All of the expected input devices are present.</p>
372</li>
373<li>
374<p>Each input device has been configured appropriately.  Especially check the
375    touch screen and joystick axes.</p>
376</li>
377</ol>
378<h3 id="input-dispatcher-state">Input Dispatcher State</h3>
379<p>The <code>InputDispatcher</code> is responsible for sending input events to applications.
380Its state dump shows information about which window is being touched, the
381state of the input queue, whether an ANR is in progress, and so on.</p>
382<pre>
383Input Dispatcher State:
384  DispatchEnabled: 1
385  DispatchFrozen: 0
386  FocusedApplication: &lt;null&gt;
387  FocusedWindow: name='Window{3fb06dc3 u0 StatusBar}'
388  TouchStates: &lt;no displays touched&gt;
389  Windows:
390    0: name='Window{357bbbfe u0 SearchPanel}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x01820100, type=0x000007e8, layer=211000, frame=[0,0][1080,1920], scale=1.000000, touchableRegion=[0,0][1080,1920], inputFeatures=0x00000000, ownerPid=22674, ownerUid=10020, dispatchingTimeout=5000.000ms
391    1: name='Window{3b14c0ca u0 NavigationBar}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x01840068, type=0x000007e3, layer=201000, frame=[0,1776][1080,1920], scale=1.000000, touchableRegion=[0,1776][1080,1920], inputFeatures=0x00000000, ownerPid=22674, ownerUid=10020, dispatchingTimeout=5000.000ms
392    2: name='Window{2c7e849c u0 com.vito.lux}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=true, canReceiveKeys=false, flags=0x0089031a, type=0x000007d6, layer=191000, frame=[-495,-147][1575,1923], scale=1.000000, touchableRegion=[-495,-147][1575,1923], inputFeatures=0x00000000, ownerPid=4697, ownerUid=10084, dispatchingTimeout=5000.000ms
393    3: name='Window{31c9f22 u0 Heads Up}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x01820328, type=0x000007de, layer=161000, frame=[0,0][1794,750], scale=1.000000, touchableRegion=[0,0][1794,192], inputFeatures=0x00000000, ownerPid=22674, ownerUid=10020, dispatchingTimeout=5000.000ms
394    4: name='Window{3fb06dc3 u0 StatusBar}', displayId=0, paused=false, hasFocus=true, hasWallpaper=false, visible=true, canReceiveKeys=true, flags=0x81960040, type=0x000007d0, layer=151000, frame=[0,0][1080,1920], scale=1.000000, touchableRegion=[0,0][1080,1920], inputFeatures=0x00000004, ownerPid=22674, ownerUid=10020, dispatchingTimeout=5000.000ms
395    5: name='Window{278c1d65 u0 KeyguardScrim}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x01110900, type=0x000007ed, layer=131000, frame=[0,0][1080,1776], scale=1.000000, touchableRegion=[0,0][1080,1776], inputFeatures=0x00000000, ownerPid=745, ownerUid=1000, dispatchingTimeout=5000.000ms
396    6: name='Window{869f213 u0 com.android.systemui.ImageWallpaper}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=true, canReceiveKeys=false, flags=0x00000318, type=0x000007dd, layer=21025, frame=[0,0][2328,1920], scale=1.000000, touchableRegion=[0,0][2328,1920], inputFeatures=0x00000000, ownerPid=22674, ownerUid=10020, dispatchingTimeout=5000.000ms
397    7: name='Window{16ab6320 u0 InputMethod}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x01800108, type=0x000007db, layer=21020, frame=[0,75][1080,1920], scale=1.000000, touchableRegion=[0,986][1080,1920], inputFeatures=0x00000000, ownerPid=8409, ownerUid=10056, dispatchingTimeout=5000.000ms
398    8: name='Window{cf4ff0b u0 com.google.android.googlequicksearchbox/com.google.android.launcher.GEL}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x81910120, type=0x00000001, layer=21015, frame=[0,0][1080,1920], scale=1.000000, touchableRegion=[0,0][1080,1920], inputFeatures=0x00000000, ownerPid=14722, ownerUid=10022, dispatchingTimeout=5000.000ms
399    9: name='Window{1a7be08a u0 com.android.systemui/com.android.systemui.recents.RecentsActivity EXITING}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x81910120, type=0x00000001, layer=21010, frame=[0,0][1080,1920], scale=1.000000, touchableRegion=[0,0][1080,1920], inputFeatures=0x00000000, ownerPid=22674, ownerUid=10020, dispatchingTimeout=5000.000ms
400    10: name='Window{2280455f u0 com.google.android.gm/com.google.android.gm.ConversationListActivityGmail}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x81810120, type=0x00000001, layer=21005, frame=[0,0][1080,1920], scale=1.000000, touchableRegion=[0,0][1080,1920], inputFeatures=0x00000000, ownerPid=9897, ownerUid=10070, dispatchingTimeout=5000.000ms
401    11: name='Window{657fee5 u0 com.mobilityware.freecell/com.mobilityware.freecell.FreeCell}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x01810520, type=0x00000001, layer=21000, frame=[0,0][1080,1776], scale=1.000000, touchableRegion=[0,0][1080,1920], inputFeatures=0x00000000, ownerPid=3189, ownerUid=10085, dispatchingTimeout=5000.000ms
402  MonitoringChannels:
403    0: 'WindowManager (server)'
404  RecentQueue: length=10
405    MotionEvent(deviceId=4, source=0x00001002, action=2, flags=0x00000000, metaState=0x00000000, buttonState=0x00000000, edgeFlags=0x00000000, xPrecision=1.0, yPrecision=1.0, displayId=0, pointers=[0: (335.0, 1465.0)]), policyFlags=0x62000000, age=217264.0ms
406    MotionEvent(deviceId=4, source=0x00001002, action=1, flags=0x00000000, metaState=0x00000000, buttonState=0x00000000, edgeFlags=0x00000000, xPrecision=1.0, yPrecision=1.0, displayId=0, pointers=[0: (335.0, 1465.0)]), policyFlags=0x62000000, age=217255.7ms
407    MotionEvent(deviceId=4, source=0x00001002, action=0, flags=0x00000000, metaState=0x00000000, buttonState=0x00000000, edgeFlags=0x00000000, xPrecision=1.0, yPrecision=1.0, displayId=0, pointers=[0: (330.0, 1283.0)]), policyFlags=0x62000000, age=216805.0ms
408    MotionEvent(deviceId=4, source=0x00001002, action=2, flags=0x00000000, metaState=0x00000000, buttonState=0x00000000, edgeFlags=0x00000000, xPrecision=1.0, yPrecision=1.0, displayId=0, pointers=[0: (330.0, 1287.0)]), policyFlags=0x62000000, age=216788.3ms
409    MotionEvent(deviceId=4, source=0x00001002, action=2, flags=0x00000000, metaState=0x00000000, buttonState=0x00000000, edgeFlags=0x00000000, xPrecision=1.0, yPrecision=1.0, displayId=0, pointers=[0: (331.0, 1297.0)]), policyFlags=0x62000000, age=216780.0ms
410    MotionEvent(deviceId=4, source=0x00001002, action=2, flags=0x00000000, metaState=0x00000000, buttonState=0x00000000, edgeFlags=0x00000000, xPrecision=1.0, yPrecision=1.0, displayId=0, pointers=[0: (332.0, 1316.0)]), policyFlags=0x62000000, age=216771.6ms
411    MotionEvent(deviceId=4, source=0x00001002, action=2, flags=0x00000000, metaState=0x00000000, buttonState=0x00000000, edgeFlags=0x00000000, xPrecision=1.0, yPrecision=1.0, displayId=0, pointers=[0: (333.0, 1340.0)]), policyFlags=0x62000000, age=216763.3ms
412    MotionEvent(deviceId=4, source=0x00001002, action=2, flags=0x00000000, metaState=0x00000000, buttonState=0x00000000, edgeFlags=0x00000000, xPrecision=1.0, yPrecision=1.0, displayId=0, pointers=[0: (333.0, 1362.0)]), policyFlags=0x62000000, age=216755.0ms
413    MotionEvent(deviceId=4, source=0x00001002, action=2, flags=0x00000000, metaState=0x00000000, buttonState=0x00000000, edgeFlags=0x00000000, xPrecision=1.0, yPrecision=1.0, displayId=0, pointers=[0: (332.0, 1384.0)]), policyFlags=0x62000000, age=216747.2ms
414    MotionEvent(deviceId=4, source=0x00001002, action=1, flags=0x00000000, metaState=0x00000000, buttonState=0x00000000, edgeFlags=0x00000000, xPrecision=1.0, yPrecision=1.0, displayId=0, pointers=[0: (332.0, 1384.0)]), policyFlags=0x62000000, age=216738.9ms
415  PendingEvent: &lt;none&gt;
416  InboundQueue: &lt;empty&gt;
417  ReplacedKeys: &lt;empty&gt;
418  Connections:
419    0: channelName='WindowManager (server)', windowName='monitor', status=NORMAL, monitor=true, inputPublisherBlocked=false
420      OutboundQueue: &lt;empty&gt;
421      WaitQueue: &lt;empty&gt;
422    1: channelName='278c1d65 KeyguardScrim (server)', windowName='Window{278c1d65 u0 KeyguardScrim}', status=NORMAL, monitor=false, inputPublisherBlocked=false
423      OutboundQueue: &lt;empty&gt;
424      WaitQueue: &lt;empty&gt;
425    2: channelName='357bbbfe SearchPanel (server)', windowName='Window{357bbbfe u0 SearchPanel}', status=NORMAL, monitor=false, inputPublisherBlocked=false
426      OutboundQueue: &lt;empty&gt;
427      WaitQueue: &lt;empty&gt;
428    3: channelName='869f213 com.android.systemui.ImageWallpaper (server)', windowName='Window{869f213 u0 com.android.systemui.ImageWallpaper}', status=NORMAL, monitor=false, inputPublisherBlocked=false
429      OutboundQueue: &lt;empty&gt;
430      WaitQueue: &lt;empty&gt;
431    4: channelName='3fb06dc3 StatusBar (server)', windowName='Window{3fb06dc3 u0 StatusBar}', status=NORMAL, monitor=false, inputPublisherBlocked=false
432      OutboundQueue: &lt;empty&gt;
433      WaitQueue: &lt;empty&gt;
434    5: channelName='2c7e849c  (server)', windowName='Window{2c7e849c u0 com.vito.lux}', status=NORMAL, monitor=false, inputPublisherBlocked=false
435      OutboundQueue: &lt;empty&gt;
436      WaitQueue: &lt;empty&gt;
437    6: channelName='cf4ff0b com.google.android.googlequicksearchbox/com.google.android.launcher.GEL (server)', windowName='Window{cf4ff0b
438u0 com.google.android.googlequicksearchbox/com.google.android.launcher.GEL}', status=NORMAL, monitor=false, inputPublisherBlocked=false
439      OutboundQueue: &lt;empty&gt;
440      WaitQueue: &lt;empty&gt;
441    7: channelName='2280455f com.google.android.gm/com.google.android.gm.ConversationListActivityGmail (server)', windowName='Window{2280455f u0 com.google.android.gm/com.google.android.gm.ConversationListActivityGmail}', status=NORMAL, monitor=false, inputPublisherBlocked=false
442      OutboundQueue: &lt;empty&gt;
443      WaitQueue: &lt;empty&gt;
444    8: channelName='1a7be08a com.android.systemui/com.android.systemui.recents.RecentsActivity (server)', windowName='Window{1a7be08a u0 com.android.systemui/com.android.systemui.recents.RecentsActivity EXITING}', status=NORMAL, monitor=false, inputPublisherBlocked=false
445      OutboundQueue: &lt;empty&gt;
446      WaitQueue: &lt;empty&gt;
447    9: channelName='3b14c0ca NavigationBar (server)', windowName='Window{3b14c0ca u0 NavigationBar}', status=NORMAL, monitor=false, inputPublisherBlocked=false
448      OutboundQueue: &lt;empty&gt;
449      WaitQueue: &lt;empty&gt;
450    10: channelName='16ab6320 InputMethod (server)', windowName='Window{16ab6320 u0 InputMethod}', status=NORMAL, monitor=false, inputPublisherBlocked=false
451      OutboundQueue: &lt;empty&gt;
452      WaitQueue: &lt;empty&gt;
453    11: channelName='657fee5 com.mobilityware.freecell/com.mobilityware.freecell.FreeCell (server)', windowName='Window{657fee5 u0 com.mobilityware.freecell/com.mobilityware.freecell.FreeCell}', status=NORMAL, monitor=false, inputPublisherBlocked=false
454      OutboundQueue: &lt;empty&gt;
455      WaitQueue: &lt;empty&gt;
456    12: channelName='31c9f22 Heads Up (server)', windowName='Window{31c9f22 u0 Heads Up}', status=NORMAL, monitor=false, inputPublisherBlocked=false
457      OutboundQueue: &lt;empty&gt;
458      WaitQueue: &lt;empty&gt;
459  AppSwitch: not pending
460    7: channelName='2280455f com.google.android.gm/com.google.android.gm.ConversationListActivityGmail (server)', windowName='Window{2280455f u0 com.google.android.gm/com.google.android.gm.ConversationListActivityGmail}', status=NORMAL, monitor=false, inputPublisherBlocked=false
461      OutboundQueue: &lt;empty&gt;
462      WaitQueue: &lt;empty&gt;
463    8: channelName='1a7be08a com.android.systemui/com.android.systemui.recents.RecentsActivity (server)', windowName='Window{1a7be08a u0 com.android.systemui/com.android.systemui.recents.RecentsActivity EXITING}', status=NORMAL, monitor=false, inputPublisherBlocked=false
464      OutboundQueue: &lt;empty&gt;
465      WaitQueue: &lt;empty&gt;
466    9: channelName='3b14c0ca NavigationBar (server)', windowName='Window{3b14c0ca u0 NavigationBar}', status=NORMAL, monitor=false, inputPublisherBlocked=false
467      OutboundQueue: &lt;empty&gt;
468      WaitQueue: &lt;empty&gt;
469    10: channelName='16ab6320 InputMethod (server)', windowName='Window{16ab6320 u0 InputMethod}', status=NORMAL, monitor=false, inputPublisherBlocked=false
470      OutboundQueue: &lt;empty&gt;
471      WaitQueue: &lt;empty&gt;
472    11: channelName='657fee5 com.mobilityware.freecell/com.mobilityware.freecell.FreeCell (server)', windowName='Window{657fee5 u0 com.mobilityware.freecell/com.mobilityware.freecell.FreeCell}', status=NORMAL, monitor=false, inputPublisherBlocked=false
473      OutboundQueue: &lt;empty&gt;
474      WaitQueue: &lt;empty&gt;
475    12: channelName='31c9f22 Heads Up (server)', windowName='Window{31c9f22 u0 Heads Up}', status=NORMAL, monitor=false, inputPublisherBlocked=false
476      OutboundQueue: &lt;empty&gt;
477      WaitQueue: &lt;empty&gt;
478  AppSwitch: not pending
479  Configuration:
480    KeyRepeatDelay: 50.0ms
481    KeyRepeatTimeout: 500.0ms
482</pre>
483<h4 id="things-to-look-for_2">Things To Look For</h4>
484<ol>
485  <li> In general, all input events are being processed as expected.  </li>
486  <li> If you touch the touch screen and run dumpsys at the same time,
487  then the <code>TouchStates</code> line should show the window that
488  you are touching.  </li>
489</ol>
490
491