Android dumpsys input详解

(用华为P30带你看安卓)
简介:华为P30,Android 9.0(API 28)
如果你在从事安卓的开发,如果你苦于看不懂android 的输入逻辑,如果你想找到更好Android 调试工具,那么强烈建议你看完本文。如果你那么做了,你会了解dumpsys input ,你会了解 input事件的派发逻辑,你会对Android 更感兴趣;

HWELE:/ $ dumpsys input
INPUT MANAGER (dumpsys input)
Input Manager State:
  Interactive: true				//该值会随着powerManager的唤醒状态而改变;开机使能,关机不使能
  //enum {
   
  //  ASYSTEM_UI_VISIBILITY_STATUS_BAR_VISIBLE = 0,
  //  ASYSTEM_UI_VISIBILITY_STATUS_BAR_HIDDEN = 0x00000001,
  //};

  System UI Visibility: 0x8008	//系统UI的可见性
  Pointer Speed: 0				//指针速度
  Pointer Gestures Enabled: true	//如果为真,指针手势启用,
  Show Touches: false					//Show touches feature enable/disable.开发者选项->显示触摸操作(可设置)
  Pointer Capture Enabled: false

Event Hub State:
  BuiltInKeyboardId: 5		//内置键盘: 不存在为-2 ,存在为 真实(fingerprint)的Id 号
  Devices:
    -1: Virtual				//虚拟键盘设备属于合成输入设备,其 ID 为 -1,见KeyCharacterMap.VIRTUAL_KEYBOARD,
      Classes: 0x40000023	//类型,virtual(0x40000000)/implies keyboard, has DPAD keys(0x00000020)/(0x00000001|0x00000002)等特征
      Path: <virtual>		//路径
      Enabled: true			//是否有效
      Descriptor: a718a782d34bc767f4689c232d64d527998ea7fd  //该值通过sha1函数获取的唯一标识, SHA1一般指SHA-1。SHA-1(英语:Secure Hash Algorithm 1,中文名:安全散列算法1)是一种密码散列函数;标识唯一
      Location:
      ControllerNumber: 0		
      UniqueId: <virtual>
      Identifier: bus=0x0000, vendor=0x0000, product=0x0000, version=0x0000
	  
	  
	 /**
	  *1. 按键布局文件(.kl 文件)将 Linux 按键代码和坐标轴代码映射到 Android 按键代码和坐标轴代码,并指定相关的策略标记
	  *	 a. 对具有按键(包括音量、电源和耳机媒体按键等特殊按键)的内部(内置)输入设备而言是必要文件。
	  *	 b. 对其他输入设备而言是可选文件,而对特殊用途的键盘和操纵杆而言则是推荐文件。
	  *	 c. 如果没有可用的设备专属按键布局文件,则系统将改选默认文件。
	  *2. 按键布局文件: 将input event报的键值转换成具体键盘对应的按键供android上层使用,时通过键盘布局文件(*.kl)完成转换的。
      */
	  KeyLayoutFile: /system/usr/keylayout/Generic.kl			
      
	 /**
	  *1.按键字符映射文件: 按键字符映射文件(.kcm 文件)负责将 Android 按键代码与修饰符的组合映射到 Unicode 字符。系统会提供一个名为 Virtual.kcm 的特殊内置按键字符映射文件,供虚拟键盘设备使用。
	  *  a.如果只是告诉系统该设备仅用于特殊用途(非全键盘),那么对于具有按键的所有内部(内置)输入设备,特定于设备的按键布局文件必不可少。
	  *	 b.对于外部键盘,特定于设备的按键布局文件为可选项,并且通常根本不需要。系统会提供适用于许多外部键盘的通用按键字符映射。
	  *  c.如果没有提供特定于设备的按键布局文件,系统将选择默认按键布局文件。
	  **/
	KeyCharacterMapFile: /system/usr/keychars/Virtual.kcm		
      ConfigurationFile:
      HaveKeyboardLayoutOverlay: false		//有键盘布局叠加
    1: minibugreport_key		//设备名称
      Classes: 0x00000001		// 输入设备是一个键盘或有按钮。
      Path: /dev/input/event3	//对应的设备文件, InputReader读取数据的位置
      Enabled: true
      Descriptor: eb10f7ba25ce47c71082081ca1c09748fdc6fb11
      Location:
      ControllerNumber: 0
      UniqueId:
      Identifier: bus=0x0000, vendor=0x0000, product=0x0000, version=0x0000
      KeyLayoutFile: /system/usr/keylayout/Generic.kl
      KeyCharacterMapFile: /system/usr/keychars/Generic.kcm  //系统会提供一个名为 Generic.kcm 的特殊内置按键字符映射文件。此按键字符映射旨在支持各种标准外部键盘。
      ConfigurationFile:
      HaveKeyboardLayoutOverlay: false
    2: soundtrigger_input_dev
      Classes: 0x00000001
      Path: /dev/input/event0
      Enabled: true
      Descriptor: 1cc715cbd334804aa45aa5df0419a5338477dc2b
      Location:
      ControllerNumber: 0
      UniqueId:
      Identifier: bus=0x0000, vendor=0x0000, product=0x0000, version=0x0000
      KeyLayoutFile: /system/usr/keylayout/Generic.kl
      KeyCharacterMapFile: /system/usr/keychars/Generic.kcm
      ConfigurationFile:
      HaveKeyboardLayoutOverlay: false
    3: input_mt_wrapper
      Classes: 0x00000015
      Path: /dev/input/event5
      Enabled: true
      Descriptor: a988c03908bee014d81671ffdd909090304130b5
      Location:
      ControllerNumber: 0
      UniqueId:
      Identifier: bus=0x0000, vendor=0x0000, product=0x0000, version=0x0000
      KeyLayoutFile: /system/usr/keylayout/Generic.kl
      KeyCharacterMapFile: /system/usr/keychars/Generic.kcm
      ConfigurationFile:
      HaveKeyboardLayoutOverlay: false
    4: hisi_on
      Classes: 0x00000001
      Path: /dev/input/event2
      Enabled: true
      Descriptor: 0b8880f3bfb9b8911feb1902fa64f3914ea4e084
      Location: hisi_on/input0
      ControllerNumber: 0
      UniqueId:
      Identifier: bus=0x0000, vendor=0x0000, product=0x0000, version=0x0000
      KeyLayoutFile: /system/usr/keylayout/Generic.kl
      KeyCharacterMapFile: /system/usr/keychars/Generic.kcm
      ConfigurationFile:
      HaveKeyboardLayoutOverlay: false
    5: fingerprint (aka device 0 - built-in keyboard)
      Classes: 0x00000001
      Path: /dev/input/event4
      Enabled: true
      Descriptor: 94605cc6d11050165b0e47ce7d8b3046d370abd5
      Location:
      ControllerNumber: 0
      UniqueId:
      Identifier: bus=0x0000, vendor=0x0000, product=0x0000, version=0x0000
      KeyLayoutFile: /system/usr/keylayout/fingerprint.kl
      KeyCharacterMapFile: /system/usr/keychars/Generic.kcm
      ConfigurationFile: /system/usr/idc/fingerprint.idc
      HaveKeyboardLayoutOverlay: false
    7: hisi_gpio_key
      Classes: 0x00000001
      Path: /dev/input/event1
      Enabled: true
      Descriptor: 2ffdd6a1bf8a4cbe7b5de5f4d03609f3340c4c76
      Location:
      ControllerNumber: 0
      UniqueId:
      Identifier: bus=0x0019, vendor=0x0000, product=0x0000, version=0x0000
      KeyLayoutFile: /system/usr/keylayout/Generic.kl
      KeyCharacterMapFile: /system/usr/keychars/Generic.kcm
      ConfigurationFile:
      HaveKeyboardLayoutOverlay: false
    16777222: hi3xxx_hi6405_card Headset Jack
      Classes: 0x00000081
      Path: /dev/input/event6
      Enabled: true
      Descriptor: 668df2f6c2189282c84c109d8682c797ca11b41c
      Location: ALSA
      ControllerNumber: 0
      UniqueId:
      Identifier: bus=0x0000, vendor=0x0000, product=0x0000, version=0x0000
      KeyLayoutFile: /system/usr/keylayout/Generic.kl
      KeyCharacterMapFile: /system/usr/keychars/Generic.kcm
      ConfigurationFile:
      HaveKeyboardLayoutOverlay: false

Input Reader State:
  Device -1: Virtual
    Generation: 2
    IsExternal: false	//一般情况为false
    HasMic:     false	//有麦克风:false
    Sources: 0x00000301	//AINPUT_SOURCE_KEYBOARD | AINPUT_SOURCE_DPAD (keyboard | dpad)
    KeyboardType: 2	//带字母的键盘
    Keyboard Input Mapper:
      Parameters:
        HasAssociatedDisplay: false	//无相关显示
        OrientationAware: false  //偏向:false
        HandlesKeyRepeat: false  //处理键重复: false
      KeyboardType: 2
      Orientation: 0			//显示偏向0度,正常显示(四种情况,0度,90度,180度 270度)		
      KeyDowns: 0 keys currently down		//该输入设备当前没有任何按键输入
      MetaState: 0x0			//当前是否有组合键特殊按键
      DownTime: 0
  Device 0: fingerprint		//指纹识别设备
    Generation: 8
    IsExternal: false
    HasMic:     false
    Sources: 0x00000101		//属于带按键的设备
    KeyboardType: 1	//不带字母的按键键盘
    Keyboard Input Mapper:
      Parameters:
        HasAssociatedDisplay: true	//存在相关显示
        OrientationAware: true	//偏向识别:true
        HandlesKeyRepeat: false
      KeyboardType: 1	//不带字母的按键
      Orientation: 0
      KeyDowns: 0 keys currently down
      MetaState: 0x0
      DownTime: 0
  Device 1: minibugreport_key	//某种特殊的按键设备
    Generation: 16
    IsExternal: false		
    HasMic:     false
    Sources: 0x00000101			//带按键
    KeyboardType: 1				//不带字母的按键
    Keyboard Input Mapper:
      Parameters:
        HasAssociatedDisplay: false
        OrientationAware: false
        HandlesKeyRepeat: false
      KeyboardType: 1
      Orientation: 0
      KeyDowns: 0 keys currently down
      MetaState: 0x0
      DownTime: 0
  Device 2: soundtrigger_input_dev
    Generation: 14
    IsExternal: false
    HasMic:     false
    Sources: 0x00000101
    KeyboardType: 1
    Keyboard Input Mapper:
      Parameters:
        HasAssociatedDisplay: false
        OrientationAware: false
        HandlesKeyRepeat: false
      KeyboardType: 1
      Orientation: 0
      KeyDowns: 0 keys currently down
      MetaState: 0x0
      DownTime: 0
  Device 3: input_mt_wrapper  //触屏设备:
    Generation: 317
    IsExternal: false
    HasMic:     false
    Sources: 0x00001103		(AINPUT_SOURCE_TOUCHSCREEN:0x00001002 | AINPUT_SOURCE_KEYBOARD: 0x00000101)  触屏加按键,按键可以理解屏幕底部的: 返回键,主页建和运行软件后台程序
    KeyboardType: 1 	//不带字母按键
    Motion Ranges:
      X: source=0x00001002, min=0.000, max=1079.000, flat=0.000, fuzz=0.000, resolution=0.000
      Y: source=0x00001002, min=0.000, max=2339.000, flat=0.000, fuzz=0.000, resolution=0.000
      PRESSURE: source=0x00001002, min=0.000, max=1.000, flat=0.000, fuzz=0.000, resolution=0.000
      SIZE: source=0x00001002, min=0.000, max=1.000, flat=0.000, fuzz=0.000, resolution=0.000
      TOUCH_MAJOR: source=0x00001002, min=0.000, max=2577.208, flat=0.000, fuzz=0.000, resolution=0.000
      TOUCH_MINOR: source=0x00001002, min=0.000, max=2577.208, flat=0.000, fuzz=0.000, resolution=0.000
      TOOL_MAJOR: source=0x00001002, min=0.</
  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值