我正在做一些ui自动化,我可以使用getevent存储屏幕触摸,但是当我尝试使用sendeevent发送这个时,需要很长的时间,这使得很难真正重播输入。
我已经尝试将脚本加载到设备上,并在设备上本地运行该脚本(一个包含许多sendEvent命令的脚本)。但这只是稍微有点影响。是否有其他方法可以更快地注入这些命令?

最佳答案

触摸处理程序在不同的设备上实现不同。您应该cat /proc/bus/input/devices查看触摸处理程序的实现位置。
您还可以执行adb shell getevent,与设备交互并查看接口名称的输出。
重播需要很长时间的原因是sendEvent二进制文件打开接口文件,向其写入数据,并在每次调用sendEvent时关闭它。所以理论上,如果你有一堆sendEvent命令,二进制文件会打开接口文件,为每个命令写入数据并关闭它。
我解决这个问题的方法是在/system/core/toolbox下重新编写sendEvent.c文件,以便在重播期间只打开该文件一次,写入所有数据并在重播结束时关闭它。这对我来说是完美的!

08-06 19:26