AndroidViewClient device.touch () is much slower than MonkeyRunner. Can this be fixed?

I removed MonkeyRunner for AndroidViewClient to take advantage of its added reliability and ease of implementation (thank God for pure Python).

I need to execute a few device.touch () events as quickly as possible, however AndroidViewClient seems to reach significantly slower than MonkeyRunner.

Here is the code I used for both of them:

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)

Here's the output of MonkeyRunner:

1: 0:00:00.003000
2: 0:00:00.002001
3: 0:00:00.002001
4: 0:00:00.002001
5: 0:00:00.002000

Here is the output of AVC:

1: 0:00:00.460000
2: 0:00:00.515000
3: 0:00:00.499000
4: 0:00:00.508000
5: 0:00:00.456000

This is about 200 times slower on average.

It seems that you can store events in a binary file, and then click and run it directly on the phone. However, I would like to take a clean approach to AVC.

Is it possible?

Edit:

, , , .

:

():

#!/bin/sh
sendevent /dev/input/event1 3 57 0
sendevent /dev/input/event1 3 55 0
sendevent /dev/input/event1 3 53 640
sendevent /dev/input/event1 3 54 900
sendevent /dev/input/event1 3 58 1
sendevent /dev/input/event1 0 2 0
sendevent /dev/input/event1 0 0 0
sendevent /dev/input/event1 0 2 0
sendevent /dev/input/event1 0 0 0
sendevent /dev/input/event1 3 57 0
sendevent /dev/input/event1 3 55 0
sendevent /dev/input/event1 3 53 640
sendevent /dev/input/event1 3 54 730
sendevent /dev/input/event1 3 58 1
sendevent /dev/input/event1 0 2 0
sendevent /dev/input/event1 0 0 0
sendevent /dev/input/event1 0 2 0
sendevent /dev/input/event1 0 0 0
sendevent /dev/input/event1 3 57 0
sendevent /dev/input/event1 3 55 0
sendevent /dev/input/event1 3 53 500
sendevent /dev/input/event1 3 54 900
sendevent /dev/input/event1 3 58 1
sendevent /dev/input/event1 0 2 0
sendevent /dev/input/event1 0 0 0
sendevent /dev/input/event1 0 2 0
sendevent /dev/input/event1 0 0 0

, , MonkeyRunner.

+4
2

, AVC MonkeyRunner, , - , , , Monkeyrunner Monkey , , , . AVC adb /, , "" adb, , Java, . , AVC Monkey, : Uiautomator Monkey , , :

AVC: client socket ---> ADB server ---> ADB daemon on device
MonkeyRunner: client socket ---> Monkey server on device
+1

, , -

cmd = ''
for _ in range(6):
    cmd += 'input tap 1 1;'
ts_start = datetime.datetime.now()
device.shell(cmd)
chrono = datetime.datetime.now() - ts_start
print str(chrono)

, .

0

All Articles