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更细一些,还可以划分更多关键点出来,


更多相关文章

  1. C语言函数以及函数的使用
  2. RelativeLayout常用属性
  3. 2011.09.09 ——— android 2.2 修改安装路径
  4. 更改Android AVD模拟器创建路径位置的方法
  5. getprop 获取android系统属性
  6. Android manifest属性

随机推荐

  1. 外键是否可以引用非唯一索引?
  2. MySQL入门很简单-学习笔记 - 第13章 MySQL
  3. 求问vs窗体应用程序用gridview连接mysql
  4. timestampdiff返回正确但负面的分钟
  5. 腾讯云数据库团队:GreenPlum简单性能测试
  6. CentOS使用MySQL的详细步骤,及C API编程
  7. MySQL中mysqldump导出数据的使用
  8. 现在开发用的都是PDO还是Mysqli
  9. 如何在php中测量mysql时间,sql查询的时间
  10. 【错误】:MySql Host is blocked because