截至 2026 年 3 月 29 日,Android 自动化生态可以明确分成“底座执行器”“视觉/脚本自动化”“Agent 编排层”“研究 benchmark / 模拟环境”四类;把它们混成一个概念,会直接导致架构选型错误。
先把框架分层
| 类别 | 代表方案 | 适合做什么 |
|---|---|---|
| 底座执行器 | UI Automator, Appium UiAutomator2, openatx/uiautomator2 | 稳定操作真机、取元素、点击输入、回放 |
| 脚本/视觉自动化 | Maestro, Airtest, AutoJs6 | 快速脚本、回归、图像识别、轻量运营动作 |
| Agent 编排层 | OpenClaw, Midscene, Droidrun | 多步规划、失败恢复、视觉理解、MCP/Skills |
| 研究环境 | Android-Lab, MobileAgent, AppAgent, AndroidWorld, Mobile-Env | 做论文、POC、评测和能力基准 |
主流方案横向对比
| 方案 | 控制方式 | 优点 | 短板 | 在购物场景中的定位 |
|---|---|---|---|---|
| UI Automator | Android 官方测试框架 | 官方、稳定、跨 App/系统 UI | 对复杂业务逻辑表达力有限 | 原子动作底座 |
| Appium UiAutomator2 | WebDriver + UiAutomator2 | 生态成熟、语言多、对测试团队友好 | 栈更重、延迟更高 | 多语言测试与现成 QA 团队接入 |
| openatx/uiautomator2 | Python 客户端直连设备端服务 | 更轻、控制直接、适合服务端执行器 | 需要自己补流程编排和运维 | 服务端动作执行层首选之一 |
| Maestro | Flow 脚本 + 言语化断言 | 上手快、适合冒烟和回归 | 动态复杂任务适应性一般 | 回归测试、发布验收 |
| Airtest | 图像识别 + 脚本 | 对 selector 差的页面友好 | 分辨率、动画、遮挡影响大 | 图像兜底与弱结构页面 |
| AutoJs6 | Android 端 JS 自动化 | 国内脚本生态熟、对运营动作友好 | 可维护性、合规与工程化弱 | 内部脚本工具,不建议做主框架 |
| Midscene.js | AI Operator + Android 支持 | 把 AI 规划和自动化连接起来,并能接 OpenClaw Skills | 需要底层执行器和约束策略配套 | Agent 编排层优先候选 |
| OpenClaw | 通用 computer-use agent framework | 适合做统一编排、Skills、会话控制 | 本身不是 Android 底座 | 上层控制平面 |
| Droidrun | 产品化 Android AI agent runtime | 真机/云机接入快,适合验证 agent 思路 | 供应商绑定更强 | 快速 PoC / SaaS 化执行层 |
| Android-Lab | Android agent benchmark & suite | 研究完整、便于对标 agent 能力 | 偏评测,不是生产框架 | benchmark 与能力评估 |
| MobileAgent | 视觉为核心的多 App agent | 更贴近手机多 App 操作 | 生产级稳定性仍需补强 | 研究参考与交互策略借鉴 |
| AndroidWorld / Mobile-Env | 模拟环境 | 适合复现实验与指标对比 | 离真实购物 App 仍有距离 | 训练与评测,不直接上线 |
关键官方信号
Android 官方
UI Automator 官方文档 明确把它定义为构建设备可见 UI 自动化测试的工具,这决定了它天然适合当底座执行器,而不是上层业务大脑。
Appium
Appium UiAutomator2 Driver 文档 的定位非常清晰:它把命令代理到设备端自动化后端,适合既有测试体系、跨语言 SDK、现成 WebDriver 栈。
openatx
openatx/uiautomator2 README 直接把自己描述成 Android uiautomator2 测试框架的 Python 包装器。对服务端批量控制来说,它比 Appium 更轻,更适合做执行层内核。
Maestro
Maestro README 明确强调自己是移动 UI 测试框架。它强在回归和冒烟,不强在复杂业务自治。
Airtest
Airtest README 把自己定义为基于图像识别的跨平台 UI 自动化框架。这说明它是“视觉兜底工具”,不是完整业务系统。
Midscene 与 OpenClaw
Midscene README 直接写明它是面向 Web、Android、Automation & Testing 的 AI Operator;同时 Midscene 官网还给出把 Midscene 作为 OpenClaw Skills 的用法。这意味着它很适合放在手机 Agent 的编排层,而不是替代底层执行器。
OpenClaw README 的定位是 general-purpose agent framework for computer use and task automation。这个定义同样说明它更适合作为统一控制平面,而不是手机专用底座。
为什么不能只选一个框架
只选 Appium / UiAutomator2 的问题
- 复杂页面切换、弹窗歧义、上下文记忆都要自己写死
- 页面结构一旦改版,规则容易大量失效
- 很难做自然语言级的“先比较再加购”
只选视觉 Agent 的问题
- 动画、首屏骨架、广告弹窗、券弹窗会反复干扰判断
- 没有稳定 selector 时,成功率波动大
- 一旦失败,很难知道是元素不存在、页面未加载,还是逻辑判断错
只选脚本工具的问题
- 多步骤复杂业务可维护性差
- 与订单、账号、风控状态联动不自然
- 很难把执行过程做成“可审计的任务系统”
推荐组合
生产路径
OpenClaw或自定义 LLM tool orchestrator 做规划Midscene做视觉理解和 skill 封装openatx/uiautomator2+ADB做确定性动作- OCR / 图像匹配做兜底
- 自建任务状态机、日志、录屏和人工确认
纯测试路径
Maestro或Appium- 补少量截图断言
- 用于版本回归、日常巡检和固定流程 smoke test
研究路径
Android-Lab/AndroidWorld/Mobile-Env- 用于比较 prompt、模型、策略,而不是直接替代生产框架
结论
对你这个需求,最值得投入的不是“重写一个新的 Auto.js”,而是做一个分层框架:
- 真机控制层吃掉 Android 自动化复杂度。
- Agent 层负责理解任务与页面。
- 业务层把购物流程做成状态机。
- 平台 API 能接的地方就不要再靠 UI 点。