前言
针对移动端项目的评测,为了记录并评估产品表现,时常需要对设备进行录屏以作后续分析。
那么,应该如何在Python脚本中可靠、可控地实现安卓设备录屏呢?下面简单分享一下小编的经验与心得。
adb命令
首先,在移动设备与PC进行连接后,通过adb命令进行录屏无疑是一种简单有效的方式:
# 录制命令 —— 参数 + 录屏文件路径
adb shell screenrecord [options] <filename>
关于命令参数options,常用的有 --size(视频分辨率大小),以及 --time-limit(控制录制视频的时间),体现在脚本中即是:
# 以1280*720的分辨率对设备进行10秒的录屏,视频存储在设备sd卡路径下
command = "adb shell screenrecord /sdcard/SDvideo.mp4 --time-limit 10 --size 1280*720"
os.system(command)
录屏结束后,将视频文件导出到PC任意路径下,即可得到所需录屏素材,如:
# 将所录制视频导出到电脑D盘
command = "adb pull /sdcard/SDvideo.mp4 D:/"
投屏工具scrcpy
很遗憾,虽然通过adb命令录屏非常方便,但由于权限限制,无法在安卓系统较高的设备上使用。小编经过调研后选取了开源的投屏工具scrcpy来解决这一问题。
软件的安装使用比较简单,不再赘述,下面主要介绍一下其录屏命令相关内容:
# 录制命令 + 录屏文件路径
# 按Ctrl+C以停止录制
command = "scrcpy --record file.mp4"
os.system(command)
移动设备连接PC后,执行以上命令,即可开始投屏与录制。考虑到评测执行的过程中无需在PC端进行投屏,可以选择关闭录屏过程中的屏幕镜像:
command = "scrcpy --no-display --record file.mp4"
不同于adb录屏命令,scrcpy无法直接设定录制时间。为了使录屏素材的时长可控,小编使用了结束进程命令的方式:
# mac上结束scrcpy录屏命令
command = "killall scrcpy"
# windows上结束scrcpy录屏命令
# 注意:windows上的TASKKILL不支持no-display形式的录屏
command = "TASKKILL /im scrcpy.exe"
由此,在脚本中合适的时机去执行结束命令,即可在当前工作路径下得到所录制的视频文件file.mp4。
结语
经小编实测,通过scrcpy录屏得到的视频质量上乘,足以作为项目评测中的分析素材进行使用。关于python脚本中实现安卓设备录屏的方式还有很多,欢迎大家留言沟通。