pointer location
PointerLocation这个多点触控测试程序,只包括下面的两个文件,
LINUX/android\development\apps\Development\src\com\android\development\PointerLocation.java
LINUX/android\frameworks\base\core\java\com\android\internal\widget\PointerLocationView.java
一、驱动层
检查是否有点上报
adb shell getevent -l /dev/input/eventX
检查input设备支持的属性值
adb shell getevent -i /dev/input/eventX
-l -i -p -t -r -v
二、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更细一些,还可以划分更多关键点出来,
更多相关文章
- Android(安卓)键盘驱动
- 简析Android对Linux内核的改动
- Android如何为kernel添加一个驱动
- android底层的学习
- android 电容屏(三):驱动调试之驱动程序分析篇
- android 电容屏(三):驱动调试之驱动程序分析篇
- Android结构介绍
- Android内核和驱动篇-Android内核介绍
- android 电容屏(三):驱动调试之驱动程序分析篇