Home | History | Annotate | Download | only in input
      1 page.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
     28 systems input devices, such as keyboards and touchscreens, and the
     29 processing of input events.</p>
     30 
     31 <h2 id="input">Input</h2>
     32 <p>To dump the input systems 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
     40 but 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>
     51 INPUT MANAGER (dumpsys input)
     52 
     53 Event 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.
    169 Its state dump shows information about how each input device is configured
    170 and recent state changes that have occurred, such as key presses or touches on
    171 the touch screen.</p>
    172 
    173 <p>As an example, this is what a special function keypad looks like:</p>
    174 
    175 <pre>
    176 Input 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
    194 the device and the calibration parameters that were used.</p>
    195 
    196 <pre>
    197 Input 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
    266 have 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
    305 range.  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
    348 parameters 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.
    380 Its state dump shows information about which window is being touched, the
    381 state of the input queue, whether an ANR is in progress, and so on.</p>
    382 <pre>
    383 Input 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 
    438 u0 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