背景

今天看到有人在这篇古老的文章中 atx 快速截图 中有人留言,问有没有可能 1s 截 10 张图?这当然有可能啦!

Show you the code

打开命令行,确保安装好 Python3,手机通过数据线连接上电脑。

pip3 install uiautomator2
uiautomator2 init

此时手机上已经安装好了 minicap 和 atx-agent,并且其实 atx-agent 应该已经启动了。

pip3 install adbutils
pip3 install websocket_client

为了最快的截图速度,我们需要从 minicap 中的 socket 中拉数据。

import os
import time
import adbutils
import websocket

d = adbutils.adb.device()
lport = d.forward_port(7912)
ws = websocket.WebSocket()
ws.connect("ws://localhost:{}/minicap".format(lport))


os.makedirs("screenshots", exist_ok=True)

index = 0
start = time.time()
while True:
    data = ws.recv()
    if not isinstance(data, (bytes, bytearray)):
        print(data)
        continue
    with open("screenshots/%02d.jpg" % index, "wb") as f:
        f.write(data)
        index += 1
    print(index)
    if index > 100:
        break
duration = time.time() - start
print("Image per second: %.2f" % (100/duration))
ws.close()

我的这台锤子手机平均 30 张图/秒


↙↙↙阅读原文可查看相关链接,并与作者交流