安卓回归测别再人手连点
改完登录页、权限弹窗或深链跳转后,最耗人的往往不是编译,而是在真机或模拟器上反复:打开 App、点登录、填测试账号、跳到目标页、再翻一遍 logcat。人一走开,流程就断;合上笔记本,模拟器也跟着睡。
更稳的做法是:在常开的新加坡 Mac mini 上跑 Android 模拟器(或插上已授权调试的真机),给 Claude Code 接一个 安卓设备 MCP,让它在同一台机器上点按钮、抓日志、截图自证。你用 SSH 看终端进度,需要看画面时再用 UU 远程连接桌面——不必一直坐在桌前连点。
本文只谈 安卓真机 / 模拟器 + MCP。iOS / Xcode 见 Claude Code 与 iOS 构建;浏览器调试见 Chrome DevTools MCP 与 浏览器 Agent,不要和本篇混用同一套验收流程。
准备清单
- 一台常开的新加坡 Mac mini(整机独享),已装 Claude Code,并用你自己的账号登录
- Node.js 18+(
node -v能通过),能跑npx - Android Studio 或至少 Android SDK(含
platform-tools与 emulator),adb在 PATH 里 - 一个已创建的 AVD,或一台已打开 USB 调试并授权过的安卓真机
- 建议装
tmux,让模拟器与 Claude Code 会话在断开远程后继续跑
步骤一:在 Mac mini 上先让设备「在线」
MCP 只驱动 adb 已经看到的设备。先保证有一台在跑:
# 确认 adb
which adb
adb version
# 列出已有 AVD(名称以你本机为准)
emulator -list-avds
# 无窗口启动模拟器(适合常开机器、少占桌面)
# 把 MyAvd 换成你的 AVD 名
nohup emulator -avd MyAvd -no-window -no-audio >~/android-emulator.log 2>&1 &
adb wait-for-device
adb devices
# 应出现 device 状态的一行;unauthorized 先在真机上点允许调试
真机:用数据线接到 Mac mini,打开开发者选项与 USB 调试,首次弹窗在本机点允许。长期无人值守优先用模拟器;真机适合偶发兼容性核对。
把模拟器挂进 tmux 也可以:tmux new -s avd,再跑 emulator ...,Ctrl-b d 脱离后进程仍在。
步骤二:按项目接入安卓 MCP(推荐 Mobile MCP)
在安卓项目根目录执行(包名与参数以当前 npm / 文档为准):
# 按项目启用,避免所有仓库都拉起设备 MCP
claude mcp add mobile-mcp --scope project -- npx -y @mobilenext/mobile-mcp@latest
claude mcp list
# 列表中应出现 mobile-mcp
若你更偏向「只做安卓、工具面偏 ADB」的服务器,也可用例如:
claude mcp add android --scope project -- npx -y android-mcp-server
# SDK 不在默认路径时,按该包文档加 ANDROID_HOME 环境变量后再 add
两种选一种即可,不要同一项目叠两套设备 MCP,以免工具说明占满上下文、又重复占内存。
步骤三:在 Claude Code 里确认工具,权限从紧
tmux new -s cc-android
cd /path/to/your-android-app
claude
会话里输入 /mcp,确认 mobile-mcp(或你选的 android)已连接。首次调用会询问是否允许工具:
- 可偏向放行:列设备、截图、读 UI 结构、读 logcat(只读观察)
- 建议仍人工确认:安装 APK、清数据、点登录提交、改系统设置、卸载
- 不要把正式账号密码写进提示词或仓库;测试账号仅用于测试环境
把谨慎规则写进项目 CLAUDE.md,比每次口头叮嘱可靠。allowlist 只覆盖你反复确认过的只读类调用;写操作保持确认,避免人一走开就被点到不可逆步骤。
步骤四:写清「无人值守」验收话术
工具接上后,关键是固定流程。可在 CLAUDE.md 写类似条款(按你的包名改):
- 先
adb devices/ MCP 列设备,确认只有预期那一台为device。 - 安装或启动测试包(路径由你提供,禁止自行下载不明 APK)。
- 打开登录页 → 用测试账号完成登录 → 跳到指定页面 → 截图留证。
- 拉取相关 tag 的 logcat,只摘要报错与关键 INFO,不要整段糊进上下文。
- 任一步失败先停下说明,不要汇报「已完成」。
然后下具体任务,例如:「按 CLAUDE.md 在模拟器上走一遍登录到设置页,截图 + logcat 摘要交给我。」你可 SSH 看会话输出;需要看模拟器画面时,用 UU 远程连接进 Mac mini 桌面(无窗口模式可临时改成有窗口再观察)。
步骤五:长跑与并行时的注意点
- 模拟器与 MCP 都吃内存:整机独享时仍建议少开并行会话,用活动监视器看占用。
- 截图与大段 logcat 会占上下文:要求 Agent「只保留失败前后各几十行」。
- 设备掉线时先修
adb devices,再让 Agent 继续,不要在offline上盲点。 - 验证码、人机验证、正式环境风控:用官方测试开关或测试包处理,不要让 Agent 去绕过线上校验。
和 Zumac.Ai 怎么配合
安卓模拟器、ADB、Claude Code 与 MCP 进程都绑在同一台常开机器上才省事。笔记本合盖或睡眠,AVD 和会话一起断;放在新加坡家庭宽带上的实体 Mac mini 上,可以晚上丢回归、早上看截图与日志摘要。Zumac.Ai 提供整机独享的新加坡 Mac mini,7×24 在线,支持 SSH 与 UU 远程连接;每台机器一个固定专属地址,浏览器即可 SSH / VNC。新客户整机租用 ¥999/月起(季付 ¥2,697.30,半年付 6 送 1 ¥5,994,年付 12 送 2 ¥11,988);已购买客户续费保持原价。订购与开通走 panel.zumac.ai;方案说明见 首页费用区;使用问题见 帮助中心。需要人工协助可联系 Telegram @singatao。实际延迟取决于你本地的网络线路。
人手连点适合偶发核对;日常回归把「点登录、跳转、抓日志」交给常开 Mac mini 上的 Claude Code + 安卓 MCP,你只审证据。
