我需要尽可能快地执行几个device.touch()事件,但AndroIDVIEwClIEnt似乎实现了比MonkeyRunner慢得多的事件.
这是我用来计算它们的代码:
for iteration in range(1,6): ts_start = datetime.datetime.Now() device.touch(1,1,'DOWN_AND_UP') chrono = datetime.datetime.Now() - ts_start print str(iteration)+': '+str(chrono)
这是MonkeyRunner的输出:
1: 0:00:00.0030002: 0:00:00.0020013: 0:00:00.0020014: 0:00:00.0020015: 0:00:00.002000
这是AVC的输出:
1: 0:00:00.4600002: 0:00:00.5150003: 0:00:00.4990004: 0:00:00.5080005: 0:00:00.456000
这平均慢了约200倍.
似乎可以将事件存储在二进制文件中,然后直接在手机上推送和运行它.但是,我想坚持使用纯AVC方法.
那可能吗?
编辑:
由于现在不可能按照我想要的方式实现更好的性能,所以我必须像我提到的那样实现事件文件方式.
我使用了两个资源来执行此 *** 作:
> https://qatesttech.wordpress.com/2012/06/21/turning-the-output-from-getevent-into-something-something-that-can-be-used/
> http://ktnr74.blogspot.fr/2013/06/emulating-touchscreen-interaction-with.html
以下是其中一个文件的外观(截断):
#!/bin/shsendevent /dev/input/event1 3 57 0sendevent /dev/input/event1 3 55 0sendevent /dev/input/event1 3 53 640sendevent /dev/input/event1 3 54 900sendevent /dev/input/event1 3 58 1sendevent /dev/input/event1 0 2 0sendevent /dev/input/event1 0 0 0sendevent /dev/input/event1 0 2 0sendevent /dev/input/event1 0 0 0sendevent /dev/input/event1 3 57 0sendevent /dev/input/event1 3 55 0sendevent /dev/input/event1 3 53 640sendevent /dev/input/event1 3 54 730sendevent /dev/input/event1 3 58 1sendevent /dev/input/event1 0 2 0sendevent /dev/input/event1 0 0 0sendevent /dev/input/event1 0 2 0sendevent /dev/input/event1 0 0 0sendevent /dev/input/event1 3 57 0sendevent /dev/input/event1 3 55 0sendevent /dev/input/event1 3 53 500sendevent /dev/input/event1 3 54 900sendevent /dev/input/event1 3 58 1sendevent /dev/input/event1 0 2 0sendevent /dev/input/event1 0 0 0sendevent /dev/input/event1 0 2 0sendevent /dev/input/event1 0 0 0
性能方面,它的速度大约是MonkeyRunner实现速度的两倍.
解决方法 你是绝对正确的,如果你看看AVC和MonkeyRunner的代码,我认为流程图如下所示,两者都使用套接字,但速度的差异是因为Monkeyrunner使用直接客户端套接字连接到设备上的Monkey服务器发送命令,如点击,在设备上启动猴子服务器后按. AVC套接字与adb服务器通信发送输入tap / press,我不知道adb输入中有哪个“酱”,我猜这是产生这个慢响应时间的Java.我认为AVC的所有者可以眨眼间实现Monkey服务器,但是有一个问题,Uiautomator和Monkey不能共存,所以我猜他应该在大多数用户的速度和稳定性之间进行权衡:AVC: clIEnt socket ---> ADB server ---> ADB daemon on deviceMonkeyRunner: clIEnt socket ---> Monkey server on device总结
以上是内存溢出为你收集整理的AndroidViewClient的device.touch()比MonkeyRunner慢得多.可以修复吗?全部内容,希望文章能够帮你解决AndroidViewClient的device.touch()比MonkeyRunner慢得多.可以修复吗?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)