保存 Android 猴子随机 运行 脚本格式供以后重播

Save Android Monkey random run to script format for later replay

有没有办法将 Android Monkey 的随机 运行 保存到具有正确格式的脚本中,以便稍后由 运行ning:

重播
adb shell monkey -p <package_name> -f script_file 1

编辑:

我知道有一个种子标志 (-s),但这不是我想要的。在将其反馈给 Monkey 之前,我必须能够使用生成的脚本。

没有保存脚本的选项,但您可以使用 seed,它的作用类似于随机数生成器中的种子,因此相同的种子会导致相同的事件。这是一个例子:

adb shell monkey -p com.package -s 123 500

这将 运行 包 'com.package' 上的猴子的种子值为“123”并产生 500 个事件。

这不是一个简单的方法,但您可以对 monkey script source 进行逆向工程以创建一个脚本,该脚本采用 monkey 命令的输出并生成 monkey 脚本。

所以你可以 运行:

adb shell monkey -p <package_name> -v -v 1 > monkey-logs.txt

然后*:

convert-to-monkey-script.sh monkey-logs.txt

例如monkey call的一个输出:

Replaying 11 events with speed 1.0
:Sending Touch (ACTION_DOWN): 0:(450.0,450.0)
:Sending Touch (ACTION_UP): 0:(450.0,450.0)
Sleeping for 45 milliseconds
...

成为以下猴子脚本(阅读 monkey source 以更好地理解参数):

type= raw events
count= 2
speed= 1.0
start data >>
DispatchPointer(6934862,6934862,0,450.0,450.0,0.0,0.0,0,1.0,1.0,0,0)
DispatchPointer(6934862,6934862,1,450.0,450.0,0.0,0.0,0,1.0,1.0,0,0)

可以 运行 与(monkey.script 文件中的上述内容和 adb 推送之后):

adb shell monkey -p <package_name> -f monkey.script 1

我为自己做了一个简单的要点,将 adb taps 命令转换为 monkey 脚本格式(因为它们更快) here,所以我认为可以为此制作一个通用脚本。

*注:convert-to-monkey-script.sh不存在。正如我所说,有人可以做到