如何在Android设备上重播复杂的滑动手势

时间:2019-02-07 02:20:36

标签: android adb

我正在尝试重播复杂的滑动操作(持续时间长,滑动速度变化很大,或者持续时间很短,导致在用户完成操作后android应用程序可能会继续滚动以进行猛击式动作)滑动手势)。

我已经实现了一个系统,该系统能够使用adb shell sendevent命令处理最简单的滑动用例,但是,在处理这些非常快速的挥动手势时,sendevent命令太慢并且不会触发我想要连续滚动。对于某些长时间且复杂的滑动,Sendevent也太慢了,这些滑动在手势持续时间内的时序有不同的变化。

我发现了这篇SO帖子Android simulate fast swipe能够模拟非常快速的滑动,但是,当我使用它们完全相同的源代码对其进行测试时,我发现它处理滑动的速度过快。因此,对于需要1秒才能完成的某些复杂的轻扫手势,只需几分之一秒即可完成。另外,猛击的强度/加速度也不够精确,因为它处理滑动的速度太快了。

我还尝试使用称为RERAN(http://www.androidreran.com/)的工具,它的构想与我上面提到的SO帖子类似,但是,通过查看源代码,我似乎可以拥有更多功能由于它实际上处理将事件的二进制表示发送到设备上所需的事件处理程序,因此可以对速度进行精细控制。这种方法的问题在于,因为它直接将二进制指令发送到事件侦听器,所以需要在实际设备上具有可执行文件,但是,在设备上执行该可执行文件将需要我将设备植根,因为它们不会让我将任意文件放置在设备文件系统中的允许文件可执行的区域中。我唯一可以放的地方是sdcard目录,它是nonexec。我无法满足要求将设备植根的要求。它必须是“纯”设备,没有对其进行任何特殊的生根。

对于您可以为我提供的任何帮助,我深表感谢。谢谢。

0 个答案:

没有答案