当前位置: 移动技术网 > IT编程>脚本编程>Python > [bug]android monkey命令在Android N和Android O上的一点差异发现

[bug]android monkey命令在Android N和Android O上的一点差异发现

2018年11月01日  | 移动技术网IT编程  | 我要评论

凯蒂猫包包,租房合同协议下载,悄无声息的近义词

最近再调试这个统计fps的代码,发现代码在android n上可以正常运行,但在android o上却运行不了,拼了命的报错,给出的提示就是 zerodivisionerror: division by zero,看这错误很明显就是除数不能为0,理论上来说这问题也比较好定位就一步一步找了,排查代码后发现获取除数这个值的逻辑有问题,重新把逻辑修改后获取到正确的值后,重新运行命令跑的时候有时候会有值,有时候还是继续报这个除数不能为零,再重新查看这个除数的来源,是当屏幕有刷新时才能获取到该值,再查看让屏幕刷新的代码,发现是通过monkey的命令来模拟拖动屏幕操作,但在实际测试过程中屏幕根本就没有动,接下来就看monkey的命令 :adb shell monkey -f /sdcard/monkeytest_ud.txt 10,发现是从sd卡中获取一个monkey脚本来运行的,打开monkey脚本后,看看格式也没有啥问题。如下

type = user
    count = 10
    speed = 1.0
    start data >>

drag(300.0, 307.2, 300.0, 819.2,122.8)
drag(300.0, 307.2, 300.0, 819.2,122.8)
drag(300.0, 819.2, 300.0, 307.2,122.8)
drag(300.0, 819.2, 300.0, 307.2,122.8)

  

给出monkey命令中drag的命令语法:

drag(xstart,ystart,xend,yend,stepcount)  

 

 

 

d:\workspace3\performance\>python3 fpstest.py -o ud -c 10
通过gfxinfo取值, 测试开始...

  bash arg: -f
  bash arg: /sdcard/monkeytest_ud.txt
  bash arg: 10
args: [-f, /sdcard/monkeytest_ud.txt, 10]
 arg: "-f"
 arg: "/sdcard/monkeytest_ud.txt"
 arg: "10"
data="/sdcard/monkeytest_ud.txt"
** error: a runtimeexception occurred:
java.lang.numberformatexception: for input string: "122.8"
        at java.lang.integer.parseint(integer.java:608)
        at java.lang.integer.parseint(integer.java:643)
        at com.android.commands.monkey.monkeysourcescript.handleevent(monkeysourcescr
ipt.java:502)
        at com.android.commands.monkey.monkeysourcescript.processline(monkeysourcescr
ipt.java:793)
        at com.android.commands.monkey.monkeysourcescript.readlines(monkeysourcescrip
t.java:249)
        at com.android.commands.monkey.monkeysourcescript.readnextbatch(monkeysources
cript.java:835)
        at com.android.commands.monkey.monkeysourcescript.getnextevent(monkeysourcesc
ript.java:962)
        at com.android.commands.monkey.monkey.runmonkeycycles(monkey.java:1199)
        at com.android.commands.monkey.monkey.run(monkey.java:697)
        at com.android.commands.monkey.monkey.main(monkey.java:557)
        at com.android.internal.os.runtimeinit.nativefinishinit(native method)
        at com.android.internal.os.runtimeinit.main(runtimeinit.java:285)

events injected: 0
## network stats: elapsed time=18ms (0ms mobile, 0ms wifi, 18ms not connected)
** system appears to have crashed at event 0 of 10 using seed 1541262762069
traceback (most recent call last):
  file "fpstest.py", line 196, in <module>
    monkey_run()
  file "fpstest.py", line 190, in monkey_run
    fps_avg = round(sum(fps_list) / len(fps_list), 2)
zerodivisionerror: division by zero

  

找到生成monkey脚本的代码,把它调整为整型并保存重新全跑一次所有代码,结果正常生成。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网