公告资讯

热门消息 > 星界云手机ADB调试全攻略,自动化脚本接入一篇看懂

星界云手机ADB调试全攻略,自动化脚本接入一篇看懂

2026-05-11

星界云手机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 隧道”做成三明治:

  1. 控制台一键添加本机公网 IP(支持 IPv4/IPv6),整数据中心生效,不必逐台配置;
  2. 5555 端口只对白名单 IP 可见,其余 SYN 包直接丢弃;
  3. 传输层再走一次星界自研 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 确认序列号上线,接着就能像本地真机一样 shellpushinstall

星界后台默认给每台云手机 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 测试流水线

  1. 在 Jenkins 节点(任意可出公网的云主机)装好 Android SDK;
  2. Build 阶段产出 app-debug.apk 后,通过 stash 归档;
  3. Test 阶段 unstash,调用星界开放 API,批量唤醒 20 台高清版云手机(1080×1920),并行跑上面的 auto_smoke.py
  4. 每台手机跑完把截图和 logcat 压缩成 artifact,通过 HTML Publisher 插件聚合展示;
  5. 失败率 >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 状态——是的,批量自动化的大门已经拉开,剩下的创意,交给你的代码就好。