“2023 年,国内 Top30 的手游厂商平均每月要为每台真机支出 412 元,其中 68% 花在闲置、折旧与人工插拔上。”
——《移动测试蓝皮书》
当 CI 流水线的灯从绿变红,测试经理林巍已经连轴转了 18 个小时。公司真机池里躺着 140 多台“古董”:ROOT 权限有的开、有的关;Android 11 与 13 混插;最离谱的一台在跑 Monkey 时自动热重启,把整晚的崩溃日志全部洗成空白。
“再这么下去,版本发不了,人也得报废。”——这是林巍在凌晨三点发出的最后一条 Slack。
三个月后,同一间办公室,林巍把一杯冰美式推到记者面前:“我们现在把真机全退了,CI 里跑的全是星界云手机。预算砍了 70%,但并发量翻了 5 倍。”
一、痛点:真机池的“四宗罪”
- 型号碎片化:采购批次不同,SoC、屏幕驱动、系统补丁天差地别,脚本一换机型就崩。
- ROOT 权限难统一:为了抓 Systrace,工程师不得不把每台机器都刷成第三方 ROM,安全审计一张红牌直接打回。
- 7×24 空置:Monkey 需要通宵,但真机插着电,电池鼓包、屏幕灼屏,折旧比跑脚本还快。
- 替换慢:设备一旦死机,值班同学要冲进机房拔插 USB,平均 MTTR 18 分钟,足够把一次灰度窗口完全错过。
二、工具链:ADB 白名单,让“云机”变“本地真机”
星界云手机把 ADB 端口直接映射到公网,并通过 IP 白名单做第一层锁——只有 Jenkins 构建机的出口 IP 能被放行。
- 零跳板:本地 adb connect ip:port 一把梭,延迟稳定在 40 ms 以内。
- 免 ROOT:云手机自带“ROOT 开关”,一键点亮即可拿到 shell 最高权限,审计时随时关闭,不留后门。
- 镜像冻结:自定义镜像把 Android 11、13 两套系统连同测试 APK、框架层补丁一起固化,10 秒克隆出 50 台“纯净副本”。
三、实践:Jenkins Pipeline 的三行代码
stage('Create Cloud Phone Node') {
sh '''
curl -X POST "https://api.chinac.com/cloud-phone" \\
-d "image=android13-test&vpc=10.0.1.0/24&count=20" \\
-H "Authorization: Bearer ${STAR_REALM_TOKEN}"
'''
}
- 构建触发后,Pipeline 先调用星界 OpenAPI,一次性拉起 20 台 Android 13 云手机;
- 云手机启动完毕自动回写 ADB 地址,Jenkins 插件把节点标签打上
cloud-android13; - 下游 Job 通过
adb monkey -p com.demo --throttle 300 -v 1000000跑 24 h 长压,GPU 硬件加速让帧率始终贴着 60 fps,日志实时回传到 ElasticSearch。
如果某台云手机在 03:28 出现 kernel panic,系统 30 秒内自动释放 IP,Pipeline 立即新建一台“同镜像”设备补上,Monkey 序号无缝衔接,整条流水线连黄色警告都没亮。
四、收益:测试报告 + 实时预览,双通道秒级排障
- 实时预览:星界控制台提供 WebRTC 低延迟画面,测试同学白天边写用例边瞄一眼,就能发现 UI 错位。
- 异常快照:崩溃瞬间,云手机自动给当前帧截 4K PNG,连同 tombstone 一起推到企业微信,开发再也不用“盲猜”复现步骤。
- 弹性扩容:版本大年前,林巍把并发节点从 20 台拉到 120 台,跑完再缩回,全程按分钟计费,没有一台“闲置吃灰”。
五、成本:一台云机 30 元/月,真机 412 元/月
| 项目 | 真机池(140 台) | 星界云手机(140 台) |
|---|---|---|
| 采购/折旧 | 18 万元/年 | 0 元 |
| 机房、电、运维 | 5.6 万元/年 | 0 元 |
| 实际使用费用 | — | 5.04 万元/年 |
| 总计 | 23.6 万元/年 | 5.04 万元/年 |
| 节省 | — | 78% |
“省下的 18 万,我们给引擎组买了两台 Mac Studio 做性能分析,老板直接点赞。”林巍笑道。
六、如何上手:一天免费试用已开放
- 打开星界云手机官网,注册账户;
- 控制台勾选“开启 ADB 连接”,填入本机公网 IP(可访问 ip138.com 查看);
- 联系在线客服,说明“移动测试试用”,即可获得 1 天高清版云手机 5 台额度,足够把 Jenkins 流水线完整跑一遍。
尾声
当测试同学不再被“拔插 USB”绑架,当 CI 里的绿色流水线真正代表“随时可发版”,真机池的轰鸣终于成为过去式。星界云手机用 ADB 白名单把云端算力装进测试工程师的口袋——从此,Monkey 可以跑到天荒地老,预算却再也不会“失控”。
