使用minicap對安卓手機快速截屏

簡介

minicap屬于STF框架的一個工具,由STF團隊自身開發(fā),屬于較為核心的一部分,minicap運行于android設(shè)備端,負責(zé)設(shè)備屏幕視頻的實時采集并通過socket接口發(fā)送.

minicap采集屏幕的原理很簡單:通過ndk的截屏接口不停的截屏并通過socket接口實時發(fā)送,這樣客戶端便可以得到一序列的圖片流,圖片流合成后就成為視頻.

使用uiautomator2, 從截屏開始到存入電腦,大概需要1-2S.

而minicap可以把時間減少到到ms級別.

安裝對應(yīng)庫

pip3 install uiautomator2
uiautomator2 init

此時手機上已經(jīng)安裝好了 minicap 和 atx-agent,并且其實 atx-agent 應(yīng)該已經(jīng)啟動了。

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 系統(tǒng)上,執(zhí)行 minicap 失敗

參考

Flutter 寫的app, 需要源碼可以私信~~

最好的筆記軟件

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容