一分钟教你Android、iOS如何实现自动化录屏,超实用!

简介: 在做移动端自动化测试的过程中,有很多场景需要录制设备的屏幕视频,比如Crash现场记录,启动/页面加载耗时类的评测等,那么如何实现Android和iOS设备的屏幕录制呢?

Android


其实Android系统本身提供了一个简单的adb命令实现,虽然在有些设备上存在兼容性问题,比如华为手机出厂就删除了 screenrecord 录屏工具,不过在大部分机型上还是可以适用的(针对这个适配问题,后面会专门写一篇文章介绍一种兼容所有机型的方案),今天先来分享一下这个系统的原生实现。


这里推荐一个开源的框架adbutils,他是一个用纯Python实现的adb服务,里面对原生的screenrecord做了比较好的封装,先装依赖:

pip3 install adbutils

连接ADB Server:

import adbutils
adb = adbutils.AdbClient(host="127.0.0.1", port=5037)
print(adb.devices())

录屏方法:

# run screenrecord to record screen
r = d.screenrecord()
# sleep for a while, can not large then 3 minutes
r.stop() # stop recording
r.stop_and_pull("video.mp4") # stop recording and pull video to local, then remove video from device
# control start time manually
r = d.screenrecord(no_autostart=True)
r.start() # start record
r.stop_and_pull("video.mp4") # stop recording and pull video to local, then remove video from devic


iOS


系统要求

  • iOS系统8.0以上
  • MacOS系统10.10以上


安装

下载仓库源码,目前这个自动化录屏工具是一个二进制的文件,在代码仓库的bin目录下:

git clone https://github.com/WPO-Foundation/xrecord.git

介绍

xrecord --help
-l, --list: List available capture devices.
-n, --name: Device Name.
-i, --id: Device ID.
-o, --out: Output File.
-f, --force: Overwrite existing files.
-q, --quicktime: Start QuickTime in the background (necessary for iOS recording).
-t, --time: Recording time in seconds (records until stopped if not specified).
-u, --quality: Recoding quality (low, medium, high, photo - defaults to high).
-d, --debug: Display debugging info to stderr.
-h, --help: Prints a help message.

使用

列出可捕获的设备:

$ xrecord --quicktime --list
Available capture devices:
AppleHDAEngineInput:1B,0,1,0:1: Built-in Microphone
5f355a5b183b2d2d7ba91dcfadd4c14b98504642: iPhone
CC2437519T1F6VVDH: FaceTime HD Camera

开始录屏:

$ xrecord --quicktime --name="iPhone" --out="out.mp4" --force -q -t 10

今天是利用Android和iOS各自的平台特性来实现屏幕录制的,后面还会给大家分享一种跨平台的屏幕录制方案,敬请期待!

相关实践学习
使用CLup和iSCSI共享盘快速体验PolarDB for PostgtreSQL
在Clup云管控平台中快速体验创建与管理在iSCSI共享盘上的PolarDB for PostgtreSQL。
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
相关文章
|
19天前
|
Java 测试技术 API
安卓APP和iOS APP在测试上的区别是什么?
安卓APP和iOS APP在测试上的区别是什么?
|
20天前
|
安全 Android开发 数据安全/隐私保护
请说明鸿蒙操作系统与其他操作系统(如Android和iOS)的主要区别。
请说明鸿蒙操作系统与其他操作系统(如Android和iOS)的主要区别。
17 1
|
1月前
|
安全 Java 数据安全/隐私保护
Android和iOS应用程序加固方法详解:混淆、加壳、数据加密、动态加载和数字签名实现
Android和iOS应用程序加固方法详解:混淆、加壳、数据加密、动态加载和数字签名实现
30 0
|
2月前
|
前端开发 Java 开发工具
Vue3 如何去开发安卓 或者 ios
Vue3 如何去开发安卓 或者 ios
23 0
|
2月前
|
存储 移动开发 JavaScript
【原生】sd.js帮助您简化繁重的获取数据、存储数据(CRUD)骚操作(吐槽~在安卓9.0以下或者IOS10.X以下手机端H5页面不支持,在这两种情况下的系统只能使用ajax或者原生js请求后台数据)
【原生】sd.js帮助您简化繁重的获取数据、存储数据(CRUD)骚操作(吐槽~在安卓9.0以下或者IOS10.X以下手机端H5页面不支持,在这两种情况下的系统只能使用ajax或者原生js请求后台数据)
|
2月前
|
移动开发 JavaScript 前端开发
IOS和Android 兼容
IOS和Android 兼容
40 0
|
3月前
|
安全 前端开发 Android开发
鸿蒙开发|鸿蒙系统的介绍(为什么要学习鸿蒙开发|鸿蒙系统的官方定义|鸿蒙和安卓、ios的对比)
鸿蒙开发学习是一项探索性的工作,旨在开发一个全场景分布式操作系统,覆盖所有设备,让消费者能够更方便、更直观地使用各种设备。
209 0
鸿蒙开发|鸿蒙系统的介绍(为什么要学习鸿蒙开发|鸿蒙系统的官方定义|鸿蒙和安卓、ios的对比)
|
3月前
|
小程序 开发工具 Android开发
Donut多端框架小程序打包适配ios和安卓app
腾讯新出了一个 Donut 多端框架,可以直接将微信小程序转成 ios 和 安卓 app,小程序开发者工具里也集成了 app 相关升级、调试和打包的功能,终于可以一套代码开发出3个客户端了!
89 0
Donut多端框架小程序打包适配ios和安卓app
|
3月前
|
Linux Android开发 iOS开发
基于.Net开发的ChatGPT客户端,兼容Windows、IOS、安卓、MacOS、Linux
基于.Net开发的ChatGPT客户端,兼容Windows、IOS、安卓、MacOS、Linux
65 0
|
Android开发 UED iOS开发
新手必看!iOS 和 Android的 APP 设计有什么差异?
了解并适当结合平台规范与优势,才能做到最佳的用户体验。在《最新Android &  iOS设计尺寸规范》一文中介绍APP 设计规范(https://ds.mockplus.cn),同时本文也是一些补充。
1568 0

相关产品

  • 云迁移中心