之前使用minicap对安卓手机快速截屏的方法,对miui10以上的版本不支持. 小米手机miui10以上的版本可以通过javac.py实现快速截屏.
操作方式
-
注意: 这里下载的`Yosemite.apk` 必须和电脑上adb版本一致. 否则会报错`stderr[adb server version (41) doesn't match this client (40); killing...`
-
电脑端下载
airtest
库 .pip install airtest
-
在手机上运行yosemite程序
-
电脑端调用
from airtest.core.android.android import ADB, Javacap
adb = ADB()
devices = adb.devices()
# print(str(devices))
if not devices:
raise RuntimeError("At lease one adb device required")
# adb.serialno = devices[0][0]
adb.serialno ='18bcc735'
javacap = Javacap(adb)
while True:
frame = javacap.get_frame_from_stream()
with open("home.jpg" , "wb") as f:
f.write(frame)
##也可以用PIL保存图片
#image = Image.open(BytesIO(frame))
#image.save(temp_pic_name_temp)
这里没有加
time.sleep()
,所以会不断调用截屏,速度比uiautomator2
要快上很多,几乎可以达到实时效果.