美文网首页
使用minicap对安卓手机快速截屏

使用minicap对安卓手机快速截屏

作者: yytester | 来源:发表于2021-01-25 10:21 被阅读0次

    简介

    minicap属于STF框架的一个工具,由STF团队自身开发,属于较为核心的一部分,minicap运行于android设备端,负责设备屏幕视频的实时采集并通过socket接口发送.

    minicap采集屏幕的原理很简单:通过ndk的截屏接口不停的截屏并通过socket接口实时发送,这样客户端便可以得到一序列的图片流,图片流合成后就成为视频.

    使用uiautomator2, 从截屏开始到存入电脑,大概需要1-2S.

    而minicap可以把时间减少到到ms级别.

    安装对应库

    pip3 install uiautomator2
    uiautomator2 init
    
    

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

    pip3 install adbutils
    pip3 install websocket_client
    

    示例代码

    import os
    import uiautomator2 as u2
    import time
    import adbutils
    import websocket
    
    d = adbutils.adb.device('xxxx')   # adb devices 命令获取
    
    lport = d.forward_port(7912 )
    ws = websocket.WebSocket()
    ws.connect("ws://localhost:{}/minicap".format(lport))
    
    index = 0
    # start = time.time()
    while True:
        data = ws.recv()
        if not isinstance(data, (bytes, bytearray)):
            print(data)
            continue
        with open("home.jpg" , "wb") as f:
            f.write(data)
            index += 1
        print(index)
        if index > 0:
            break
    
    # duration = time.time() - start
    # print("Image per second: %.2f" % (100/duration))
    ws.close()
    
    

    注意,minicap会有兼容性问题.

    小米基于 miui11 系统上,执行 minicap 失败

    参考

    Flutter 写的app, 需要源码可以私信~~

    最好的笔记软件

    相关文章

      网友评论

          本文标题:使用minicap对安卓手机快速截屏

          本文链接:https://www.haomeiwen.com/subject/ayebzktx.html