另外,也可以将kmsg的内容重定向写入一个log文件中。可以依次执行下面命令
可将kmsg的内容重定向到 /mnt/sdcard/ 路径下的log文件。
2、adb pull
当我们将log保存在 /mnt/sdcard/ 路径下的时候,可以通过adb pull命令取出来放到指定路径。
有的样机会提示不可读写,那么可以在pull或者push之前加上adb remount的命令。
3、adb push
如果我们某个APP应用需要某个.so文件,那么可以通过adb push将指定的.so文件推送到指定的路径。
adb push C:\Users\Administrator\Desktop\sensors.sc8830.so /system/lib/hw
4、查看tp驱动是否加载成功
tp驱动实际上是i2c设备驱动,通过查看i2c设备节点可以查看到驱动的相关信息。
如果像是列表中有对应名字的目录,那说明驱动加载成功。此时可以进入到对应的目录中list可以查看当前驱动的信息。如下:
从上面的信息中可以知道当前设备是挂接到i2c-0上面,其i2c的设备地址是0x20(七位地址),驱动的名字为”tcm1680”。
5、调试触摸tp有无反应
使用adb shell getevent 指令,如果手指触摸tp,会有相应的event打印出来,如下面的格式:
这就是说明tp已经有反应了,进一步说明tp驱动加载成功且中断以及i2c都正常。
6、使用adb shell getevent指令
该指令有如下用法:
7、查看当前的input设备
在驱动程序中我们都要注册一个input设备,可以通过以下指令查看所有的input设备,并看是否注册成功:
执行结果为:
其中/dev/input/event5是我们注册的input设备,名字为”chm_ts”,其中
这里面的内容对应于驱动中申请input设备对其初始化的内容,包括:
最大支持手指数 ABS_MT_TRACKING_ID 为 10;
手指压力范围 ABS_MT_TOUCH_MAJOR 为 255;
手指按压宽度 ABS_MT_WIDTH_MAJOR 为 200;
X方向的最大触摸范围 ABS_MT_POSITION_X 为 800;
Y方向的最大触摸范围 ABS_MT_POSITION_Y 为 480;
8、查看报点率
这个问题一般是客户比较关注了,报点率决定了触摸的响应速度,报点率过低直接会影响到体验。可通过以下指令查看报点率:
9、查看详细的报点
假设我手指连续在(0xd8, 16f)即(216, 367)坐标附近触摸三次,得到的信息如下:
可见,一次触摸抬起的动作对应的报告格式是:
EV_ABS ABS_MT_TRACKING_ID
当前触摸的ID,这个会一直累加上去的;
EV_ABS ABS_MT_POSITION_X
EV_ABS ABS_MT_POSITION_Y
当前触摸的X和Y的坐标;
EV_KEY BTN_TOUCH
标记是按下或者抬起的动作;
EV_SYN SYN_REPORT
标记一次上报结束;
EV_ABS ABS_MT_TRACKING_ID
如果这个值为0xffffffff,那么说明当前是抬起动作,后面跟上的BTN_TOUCH要为UP;
EV_KEY BTN_TOUCH
标记是按下或者抬起的动作;
EV_SYN SYN_REPORT
标记一次上报结束;
10、sendevent
sendevent的作用与getevent相反,可以往input设备中写入值。
网上有很多用例,不过需要注意的是一定要符合input上报的协议才能成功。
11、发送特定按键的信息
手机上通常有几个特定的功能按键,比如返回键、home键、设置键等。可以使用
进行特殊的操作,比如输入下面的指令就相当于按下返回键
具体的key_code可以参照以下两篇文章:
ADB Shell Input Events
KeyEvent
12、setenforce
在调试展讯平台的tp驱动,有时候我们调试用的APK无法正常使用,内核会有如下提示信息:
即当前应用程序”com.chm.tstools”无法往名为”chm_ts”的proc设备节点上写入数据,因此可见是一个权限的为。可以使用以下命令解决:
13、查看虚拟按键的坐标
Android framework中,对于虚拟按键的处理实际上是将驱动中上报的坐标判断是否在按键区域中的坐标范围之内,如果在那范围内,那么就当做按键处理。
在 /sys/board_properties/ 目录下,会有一个设备文件,这个设备文件的内容里面包含按键的信息。
我手上的一台展讯平台样机,不包含按键区域的分辨率是480x800,采用的是focaltech的触控IC。上述命令得到的结果如下:
里面各个参数的意义如下:
具体的内容可以参照Android tp的虚拟按键(virtual key)处理
14、输入配置文件
有时候在调试tp驱动碰到这么一种情况,就是触摸的时候屏幕上一直有个小白点,且滑动的时候看起来像是滑动触摸板,怎么解释呢?就是tp驱动上报应该按照绝对坐标的方式而不是触摸板按照相对坐标的方式上报的。此时可以怀疑是idc文件没有添加。
可以在 /system/usr/idc 目录下添加一个与input设备同样名字的idc文件。
15、屏幕截图
如果有screencap命令,则可以使用该命令截图