Android Input设备debug技巧

一、驱动层

        检查是否有点上报

        adb shell getevent -l /dev/input/eventX


        检查input设备支持的属性值

        adb shell getevent -i /dev/input/eventX


二、Native层

        检查驱动上报的点是否被InputReader转发给上层

        在TouchInputMapper::sync(nsecs_t when)函数中,打印相关的变量值,检查报点路径是否正常。驱动已经报点,但是上层收不到点的情况大致有以下几种:

        a. 设备模式被设为禁用模式,mDeviceMode== DEVICE_MODE_DISABLED

  引起此问题的原因是,在注册input device时,有些属性值设置不合法,导致在configure阶段,走了异常流程;

        b. 设备类型不正确,走了其他路径


三、Java层

        在ViewRootImpl.java文件的onInputEvent( )函数中添加打印信息,检查底层上报的点,是否通过Framework层成功上报了。

        一般来讲,如果onInputEvent能收到点,报点基本上是OK的。

       有些特殊情况除外,报点的消息类型不正确或者TP的横竖坐标搞反了,会出现上层收点了,但是TP仍然无法正常使用。


       以上是debug input子系统的几个关键地方,如果想debug更细一些,还可以划分更多关键点出来,但是根据我目前的调试经验,这几点基本够用了。希望这个能给大家在调试的时候提供一些帮助!

  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值