Увеличение производительности ADB звонков - PullRequest
0 голосов
/ 29 июня 2018

привет Мне нужно отправить событие adb touch на 4-10 устройств одновременно (или почти). Для этого я делаю это

subprocess.Popen("start cmd /c adb -s device1 shell input tap 350 530",shell=True)
subprocess.Popen("start cmd /c adb -s device2 shell input tap 350 530",shell=True)
subprocess.Popen("start cmd /c adb -s device3 shell input tap 350 530",shell=True)
subprocess.Popen("start cmd /c adb -s device4 shell input tap 350 530",shell=True)

Требуется около 2-4 секунд, чтобы завершить эту последовательность. Есть ли более быстрый способ сделать это?

1 Ответ

0 голосов
/ 29 июня 2018

Вы можете удалить оболочки из вызова - вы запускаете оболочку для запуска CMD (еще одна оболочка) для запуска adb. Только не ставьте shell=True и не удаляйте CMD из звонка.

for device in ['device1', 'device2', 'device3', 'device4']:
    subprocess.Popen(['adb', '-s', device, 'shell', 'input', 'tap', '350', '530'])

Это должно быть быстрее, потому что вместо вызова 3 процессов на вызов вы вызываете только один.

...