首页 > 解决方案 > 提高性能 adb 调用

问题描述

您好,我需要同时(或几乎)向 4-10 台设备发送 adb touch 事件。为此,我正在这样做

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 秒,有没有更快的方法呢?

标签: androidpythoncmdadb

解决方案


您可以从调用中删除 shell - 您正在启动一个 shell 来运行 CMD(另一个 shell)来运行 adb。只是不要shell=True在通话中放置和删除 CMD。

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

这必须更快,因为不是每次调用调用 3 个进程,而是只调用一个。


推荐阅读