星界云手机ADB调试全攻略,自动化脚本接入一篇看懂
“2024 年,国内 Top 50 的移动互联网公司中,已有 38 家把 nightly build 的跑测机从本地真机迁到云端。”——《2024 中国 DevOps 现状调查报告》
当“云手机 + ADB”成为 CI 流水线的标配,谁先把调试成本降成 0,谁就能把迭代周期再缩短一天。
1. ADB 价值:批量改机、日志抓取、远程调试,降低人工操作
本地真机运维的三大痛点——插线不稳、电池鼓包、ROOT 权限难统一——在云手机场景里被一次性解决。
ADB 一旦打通,你就可以:
- 批量改机:一条
adb shell setprop循环下发,100 台云手机 10 秒完成机型伪装; - 日志抓取:
adb logcat -c && adb logcat -v time > cloud_%serial%.log,配合 grep 直接产出崩溃报告; - 远程调试:无需 USB 线,也无需公网映射,星界内置 SSL 隧道,北京出差也能调深圳机房里的云手机。
换句话说,过去 3 个人加班 2 小时才能完成的兼容性巡检,现在 1 个 Jenkins 任务就能在你睡觉时代劳。
2. 星界白名单机制:控制台添加本地 IP,SSL 隧道加密,杜绝非法连接
云手机最怕“开着门”——ADB 端口一旦裸奔,分分钟被扫。
星界把“端口+IP 白名单+SSL 隧道”做成三明治:
- 控制台一键添加本机公网 IP(支持 IPv4/IPv6),整数据中心生效,不必逐台配置;
- 5555 端口只对白名单 IP 可见,其余 SYN 包直接丢弃;
- 传输层再走一次星界自研 SSL 隧道,抓包也只能看到 TLS 握手。
子账号想调机?可以,但无权改白名单,必须主账号审批,运维再也不用半夜接电话“帮忙加 IP”。
3. 连接演示:adb connect 云手机 IP:5555,一次配对长期有效
步骤 1:拿到云手机列表,复制 ADB 地址(形如 cloud-adb-xxx.chinac.com:5555)。
步骤 2:本地终端执行
adb connect cloud-adb-xxx.chinac.com:5555
首次握手会看到 * daemon started successfully * 以及 connected to ...
步骤 3:adb devices 确认序列号上线,接着就能像本地真机一样 shell、push、install。
星界后台默认给每台云手机 7×24 小时保活,只要白名单不变,地址不变,哪怕笔记本休眠一晚,第二天 adb shell 依旧热连接,无需重新配对。
4. 脚本模板:Python+ADB 自动安装 APK、启动 Activity、定时截图
把下面 30 行脚本存成 auto_smoke.py,改两行包名即可跑通最小闭环:
import os, time, subprocess, datetime
SERIAL = "cloud-adb-xxx.chinac.com:5555"
APK_PATH = "app-debug.apk"
PKG_NAME = "com.demo.app"
ACTIVITY = "com.demo.app.MainActivity"
SCREEN_DIR = "screenshot"
def adb(cmd):
return subprocess.run(f"adb -s {SERIAL} {cmd}", shell=True, capture_output=True, text=True)
def install():
print(">>> 安装 APK")
adb(f"install -r {APK_PATH}")
def cold_start():
print(">>> 冷启动 Activity")
adb(f"shell am start -W -n {PKG_NAME}/{ACTIVITY}")
def screenshot():
ts = datetime.datetime.now().strftime("%H%M%S")
filename = f"{SCREEN_DIR}/scr_{ts}.png"
adb(f"shell screencap -p /sdcard/screen.png")
adb(f"pull /sdcard/screen.png {filename}")
print(f">>> 截图已保存 {filename}")
if __name__ == "__main__":
os.makedirs(SCREEN_DIR, exist_ok=True)
install()
cold_start()
time.sleep(3)
screenshot()
搭配 cron 或 Windows 任务计划,就能实现“每小时自动安装最新包→截图→上传 OSS→发送钉钉报告”的无人值守巡检。
5. 进阶玩法:结合 Jenkins nightly build,实现 CI 测试流水线
- 在 Jenkins 节点(任意可出公网的云主机)装好 Android SDK;
- Build 阶段产出
app-debug.apk后,通过stash归档; - Test 阶段
unstash,调用星界开放 API,批量唤醒 20 台高清版云手机(1080×1920),并行跑上面的auto_smoke.py; - 每台手机跑完把截图和
logcat压缩成artifact,通过 HTML Publisher 插件聚合展示; - 失败率 >5% 自动触发飞书告警,并保留现场云手机 2 小时,开发可即时
adb connect进去复现。
整个流程从代码 push 到报告出炉平均 18 分钟,较传统真机方案提速 3 倍,硬件成本却下降 60%。
6. 选型指南:如何用 30 元/月起手
- APP 自动化测试/小程序兼容性 → 普通版 4 核 3 G,30 元/月,720 P 足够;
- 短视频批量发布,需要多开 4G 内存 → 畅玩版 38 元/月;
- 直播推流扫码 → 直播基础版 720 P,自带 GPU 硬编,85 元/月;
- CI nightly 高并发 → 高清版 1080 P,48 元/月,批量镜像一键复制,20 台起步也不心疼。
所有型号均支持 ROOT 开关、XP 框架、ADB 白名单,按小时计费可随时销毁,真正做到“调试才开机,空闲不烧钱”。
7. 立即体验
想验证脚本是否跑得通?打开星界云手机官网注册账号,联系客服申请“开发者 1 天试用”,系统会自动发放 2 台尊享版云手机并帮你配好白名单。
把本文脚本 git clone 下来,5 分钟后你就能在终端里看到第一台云端 Android 的 device 状态——是的,批量自动化的大门已经拉开,剩下的创意,交给你的代码就好。
