android - 提高性能 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 秒,有没有更快的方法呢?
解决方案
您可以从调用中删除 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 个进程,而是只调用一个。
推荐阅读
- r - 按组将一个变量分成多个
- c# - 根据类中的字段对列表进行排序
- python - Python - 在后台监听键绑定
- python - python 2.7:如何 grep/拆分包含模式的行
- vba - 使用VBA更改Word文档表字符串中单个单词的颜色以匹配单元格颜色
- perl - 找不到 OpenSSL 如果已经安装,请相应设置 OPENSSL_PREFIX 环境变量
- mysql - AWS RDS MySQL 检索某些表的数据超时
- java - 使用给定坐标创建三角形图像
- django - Firefox 发送的每个请求都会触发 ConnectionResetError
- html - 如果可以在没有画布的情况下为图像像素化设置动画,则仅使用 CSS