Gina Dimino | 7fb86e2 | 2015-03-17 13:28:38 -0700 | [diff] [blame] | 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 | system’s 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 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 |
| 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: <null> |
| 387 | FocusedWindow: name='Window{3fb06dc3 u0 StatusBar}' |
| 388 | TouchStates: <no displays touched> |
| 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: <none> |
| 416 | InboundQueue: <empty> |
| 417 | ReplacedKeys: <empty> |
| 418 | Connections: |
| 419 | 0: channelName='WindowManager (server)', windowName='monitor', status=NORMAL, monitor=true, inputPublisherBlocked=false |
| 420 | OutboundQueue: <empty> |
| 421 | WaitQueue: <empty> |
| 422 | 1: channelName='278c1d65 KeyguardScrim (server)', windowName='Window{278c1d65 u0 KeyguardScrim}', status=NORMAL, monitor=false, inputPublisherBlocked=false |
| 423 | OutboundQueue: <empty> |
| 424 | WaitQueue: <empty> |
| 425 | 2: channelName='357bbbfe SearchPanel (server)', windowName='Window{357bbbfe u0 SearchPanel}', status=NORMAL, monitor=false, inputPublisherBlocked=false |
| 426 | OutboundQueue: <empty> |
| 427 | WaitQueue: <empty> |
| 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: <empty> |
| 430 | WaitQueue: <empty> |
| 431 | 4: channelName='3fb06dc3 StatusBar (server)', windowName='Window{3fb06dc3 u0 StatusBar}', status=NORMAL, monitor=false, inputPublisherBlocked=false |
| 432 | OutboundQueue: <empty> |
| 433 | WaitQueue: <empty> |
| 434 | 5: channelName='2c7e849c (server)', windowName='Window{2c7e849c u0 com.vito.lux}', status=NORMAL, monitor=false, inputPublisherBlocked=false |
| 435 | OutboundQueue: <empty> |
| 436 | WaitQueue: <empty> |
| 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: <empty> |
| 440 | WaitQueue: <empty> |
| 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: <empty> |
| 443 | WaitQueue: <empty> |
| 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: <empty> |
| 446 | WaitQueue: <empty> |
| 447 | 9: channelName='3b14c0ca NavigationBar (server)', windowName='Window{3b14c0ca u0 NavigationBar}', status=NORMAL, monitor=false, inputPublisherBlocked=false |
| 448 | OutboundQueue: <empty> |
| 449 | WaitQueue: <empty> |
| 450 | 10: channelName='16ab6320 InputMethod (server)', windowName='Window{16ab6320 u0 InputMethod}', status=NORMAL, monitor=false, inputPublisherBlocked=false |
| 451 | OutboundQueue: <empty> |
| 452 | WaitQueue: <empty> |
| 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: <empty> |
| 455 | WaitQueue: <empty> |
| 456 | 12: channelName='31c9f22 Heads Up (server)', windowName='Window{31c9f22 u0 Heads Up}', status=NORMAL, monitor=false, inputPublisherBlocked=false |
| 457 | OutboundQueue: <empty> |
| 458 | WaitQueue: <empty> |
| 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: <empty> |
| 462 | WaitQueue: <empty> |
| 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: <empty> |
| 465 | WaitQueue: <empty> |
| 466 | 9: channelName='3b14c0ca NavigationBar (server)', windowName='Window{3b14c0ca u0 NavigationBar}', status=NORMAL, monitor=false, inputPublisherBlocked=false |
| 467 | OutboundQueue: <empty> |
| 468 | WaitQueue: <empty> |
| 469 | 10: channelName='16ab6320 InputMethod (server)', windowName='Window{16ab6320 u0 InputMethod}', status=NORMAL, monitor=false, inputPublisherBlocked=false |
| 470 | OutboundQueue: <empty> |
| 471 | WaitQueue: <empty> |
| 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: <empty> |
| 474 | WaitQueue: <empty> |
| 475 | 12: channelName='31c9f22 Heads Up (server)', windowName='Window{31c9f22 u0 Heads Up}', status=NORMAL, monitor=false, inputPublisherBlocked=false |
| 476 | OutboundQueue: <empty> |
| 477 | WaitQueue: <empty> |
| 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 | |