目的:有时候有些崩溃来得比较突然,又不记得怎么操作的,这时候如果可以翻看录像就完美了.(重点是:手头的平板没有录屏功能)
1. adb
adb shell screenrecord --size 1280x800 "/sdcard/screenrecord_log.mp4"
adb pull /sdcard/screenrecord_log.mp4 D:/screenrecord_log.mp4
具体不多说,单纯记录一下
adb shell screenrecord 录制视频命令
--size 1280x800 这个值为视频尺寸,一般设置为屏幕尺寸,获取屏幕尺寸用adb shell wm size
"/sdcard/screenrecord_log.mp4" 为录制视频存放的地址
adb pull 把设备中文件复制到电脑里
/sdcard/screenrecord_log.mp4 为设备中的文件路径
D:/screenrecord_log.mp4 将要在电脑中存放的文件路径
2.python adbutils模块
https://github.com/openatx/adbutils github地址
使用前需要安装此模块,使用pip install adbutils
1 import adbutils 2 import time 3 import os 4 5 6 def main(): 7 8 d = adbutils.adb.device() 9 10 current_time = time.strftime('%Y%m%d_%H%M%S', time.localtime(time.time())) 11 12 screenrecord_file_name = 'log_screenrecord_' + current_time +'.mp4' 13 folder_path = 'D:\ALOG\' 14 screenrecord_file_path = os.path.join(folder_path, 'screenrecord',screenrecord_file_name) 15 16 17 sc = d.screenrecord("/sdcard/s.mp4") 18 19 20 time.sleep(15) # 录制15s视频 21 sc.stop_and_pull(screenrecord_file_path) 22 23 24 25 if __name__ == '__main__': 26 main()
d = adbutils.adb.device() 返回一个adbDevice对象,之后才可以对这个对象进行操作
d.screenrecord(remote_path=None, no_autostart=False)
其中remote_path 为设备中存放的地址,如不输入则默认为"/sdcard/video-%d.mp4" % int(time.time() * 1000),如video-20191120.mp4
no_autostart 标志是否直接开始录屏,如果 no_autostart 为 False,那就直接开始录制,默认为False,如果这个值取为True,那么需要调用sc.start()来开始录制.
因此,sc = d.screenrecord("/sdcard/s.mp4") 为开始录制,存放文件路径为"/sdcard/s.mp4"
stop_and_pull(path: str)
停止录制并把视频传到电脑中,设备中视频被删除.
其中path为电脑中存放视频的路径
如果用sc.stop(),那只是停止录制,并不传到电脑中
adbutils的录屏方法其实也是用adb shell screenrecord,但是看需求,有些情况下,直接用adb命令并不是很方便