学习
实践
活动
专区
工具
TVP
写文章

大哥,高速截屏工具了解一下?

近期在自动化测试过工作中接触到截屏的功能,使用Android原生的截图工具实在效率低下,研究了下minicap这个经典工具,和大家分享下学习历程。

minicap

minicap是STF(or Smartphone Test Farm 开源的web远程批量设备管理系统)框架的依赖工具,作为服务端实时向web端传输Android设备的屏幕截屏数据流,已经在github上开源维护了近3年,一直非常活跃,最近更新并适配了Android 8.1,业内应用广泛。测算性能比较好的手机可以达到30-40FPS的截屏速度。

在ZUK Z2 Pro机型上使用原生screencap工具截屏并输出到图像需要4s多,对比minicap则只需要190ms,差距明显。minicap使用了libjpeg-turbo作为编码压缩工具,压缩后的图片体积更小1080P分辨率的手机截图根据色彩丰富度不同一般只需要100k,sceencap则需要2M。

安装使用

minicap是NDK开发的native工具,分为minicap可执行文件和minicap.so库。由于minicap.so调用了一些私有API,所以必须依赖AOSP源码环境编译。minicap可执行文件需要自己编译,如果不想搭建NDK环境编译可以到GitHub上下载(https://github.com/Lukai912/minicap_build)

这里不对minicap做socket配置,只使用其截图功能。如果有需要可以参考(https://github.com/openstf/minicap)。

push文件

查看手机支持的ABI

查看手机SDK版本

然后将对应版本和SDK的可执行文件与so库push到手机中

adb push libs/$ABI/minicap /data/local/tmp/

adb push jni/minicap-shared/aosp/libs/android-$SDK/$ABI/minicap.so /data/local/tmp/

修改minicap可执行文件的可执行权限

chmod 777 /data/local/tmp/minicap

测试工具

执行minicap的参数

-P后面是手机屏幕的分辨率

adb shell LD_LIBRARY_PATH=/data/local/tmp /data/local/tmp/minicap -P 1080x1920@1080x1920/0 –t

如果有如下显示则表示工具已经安装成功可以使用了

保存截图并pull到手机

附上简单的python脚本

这篇总结了下minicap脱离STF使用的方法,自己在初次使用时遇到一些不便,希望能帮助同学们避免踩坑,更好的集成到现有的测试或开发业务中。下篇会继续分析minicap源码及截图方案对比。

Qtest是360旗下的专业测试团队!

是WEB平台部测试技术平台化、效率化的先锋力量!

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180402G1HLKE00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

关注

腾讯云开发者公众号
10元无门槛代金券
洞察腾讯核心技术
剖析业界实践案例
腾讯云开发者公众号二维码

扫码关注腾讯云开发者

领取腾讯云代金券