移动测试开发 视频流技术为手机远程租用带来全新体验——解决 minicap 痛点
一、真机租用
360 开测真机租用:真机租用是一个云手机平台,用户可以远程操控真机,平台提供了常用的安装、截图、logcat、adb shell、远程调试等功能。
二、问题概述
真机租用的图片与点击功能使用的是 stf 提供的两个工具 minicap 与 minitouch。
当 Android P 系统发布时,由于 minicap 还未发布针对 Android P 版本的 minicap 与 minitouch 文件,导致所购新机无法及时上线供测试者使用。
注:两款工具的使用都和系统版本有关,不同 Android 版本对应于不同的工具文件,为解决上述严重依赖问题,我们进行了以下分析。
三、问题分析
minicap:负责手机图片的图片显示,即能看到真机的屏幕信息和状态
minitouch:负责手机的位置点击、滑动等 UI 操作
这两个工具根据 google 发布的 Android 版本一一对应不同的工具文件。
当新的 Android 发布时,minicap 和 minitouch 的适配版本还未及时发布,这个时候就会影响用户的体验,新系统就无法正常提供使用。
minitouch 可通过 jar 包服务(基于 uiautomator)来替代,来实现 minitouch 提供的所有点击、触控功能;但 minicap 要用什么来替代呢?
四、解决方案
采取视频流的方式替代 minicap;minicap 以图片的方式传递图像信息,而视频流用的是视频流的方式。
注:stf 的作者也在尝试将 minicap 图片的方式转换为视频的方式去获取远端手机图像。
五、实现的效果
六、优势
①、视频流的新应用场景
视频流的常见用法在视频聊天、直播等使用较多,在这种交互测试上使用较少。该方案打开了另一扇视频流的使用大门。
②、远程租用平台无需依赖和 Android 版本匹配的工具(需要发布者发布某 Android 版本才可用)
③、上线新机、升级新版本成本降低(无需进行 Android 版本的适配测试,多个版本用一个版本工具)
④、在 Google 发布基础上,定制化获取视频流 jar 工具。
⑤、minicap 使用的截图 API 是 android 私有 API,被封的风险高;视频流使用的是公开 API,风险低!
⑥、视频流是局部传递图像信息,只有当某块区域发生变化时才传递,网络传输数据量小。