Android sendevent非常慢 - 如何加速?

问题描述:

我正在做一些ui自动化,并且我能够使用getevent存储屏幕接触,但是当我尝试使用sendevent发送此消息时,需要很长时间,因此很难真正重放输入。Android sendevent非常慢 - 如何加速?

我已经尝试将脚本加载到设备上并在设备上本地运行脚本(带有一系列sendevent命令的脚本)。但是这只是稍微留下了这点。有没有其他方法可以更快速地注入这些命令?

触摸处理程序是跨不同设备上实现。你应该cat /proc/bus/input/devices看看触摸处理程序的实现。

您也可以做adb shell getevent,与设备交互并查看接口名称的输出。

重播需要很长时间的原因是sendevent二进制文件打开接口文件,写入数据并关闭每次调用sendevent的数据。所以从理论上讲,如果你有一堆sendevent命令,二进制文件打开接口文件,写入数据并关闭每个命令。

我已经解决了这个问题的方法是通过在/ system/core/toolbox下重新编写sendevent.c文件在重放过程中仅打开一次文件,写入所有数据并将其关闭到重播。它适合我!

+1

就这么发生,这正是我所做的!感谢你的回答! – user1598917

好的。 而不是使用getevent的/的SendEvent可以从事件接口 尝试内亚行外壳尝试直读:

DD如果=的/ dev /输入/ event6的= RECORD1#记录

DD如果=/= record1of的/ dev /输入/ event6 q若要发挥

然而,这可能跑的太快...

+0

在这种情况下如何处理触摸之间的延迟。 – Rilwan