跳转至

Android CLI 与 sim-use 对比

背景

对比对象:

  • Android CLI:Google 官方面向 AI agent 的 Android 命令行工具,支持通过 Journeys 自动执行 App 用户流程。
  • sim-use:LY Corporation 开源的移动端 UI 操作工具,面向 agent 的 observe -> act -> verify 循环,支持 iOS Simulator 和 Android emulator/device。

这次讨论的结论:如果只做 Android,优先使用 Android CLI;sim-use 更适合作为跨 iOS / Android 或更底层屏幕操作的补充。

结论

只做 Android 时,Android CLI 基本够用,而且更符合官方方向。

推荐组合:

  • Android CLI:负责 agent workflow、Journeys、Android 官方知识和 Android Studio 能力集成。
  • Journeys:沉淀核心用户路径,例如登录、进入设置、修改配置、验证结果。
  • adb / logcat / Gradle:处理底层构建、安装、调试和日志。
  • sim-use:只有在需要跨 iOS / Android,或 Android CLI 的临场屏幕操作不够透明时再引入。

Android CLI 可以自动点击吗

可以。

Android CLI 的 Journeys 可以让 AI agent 按自然语言描述执行 App 用户流程,包括:

  • 自动导航页面;
  • 自动点击控件;
  • 自动输入内容;
  • 根据设备屏幕状态做断言;
  • 在终端或 CI/CD 中运行用户旅程验证。

所以这里的 Android CLI 不是传统意义上只有 adb shell input tap x y 的底层命令集合,而是 Google 官方的 agent-first Android 自动化入口。

Android CLI 的优势

  • 官方 Android 工具,方向更贴近 Android 生态。
  • 适合 Android-only 项目,不需要额外维护跨端工具链。
  • Journeys 更像端到端用户旅程验收测试,适合沉淀可重复执行的流程。
  • 更适合接入 CI/CD,长期维护成本可能更低。
  • 可以结合 Android skills、Android 知识库、Android Studio 命令等能力。
  • 和 adb、Gradle、logcat、emulator 等传统工具配合自然。

Android CLI 的不足

  • 只面向 Android,不解决 iOS Simulator 自动操作。
  • Journey 抽象层级较高,执行过程相对更黑盒。
  • 如果想精确控制“当前屏幕第几个元素被点击”,不如 sim-use ui + tap @N 直观。
  • 工具较新,稳定性和 CI 体验需要在自己的项目中验证。

sim-use 的优势

  • 同一套命令可以操作 iOS Simulator 和 Android emulator/device。
  • 更强调 observe -> act -> verify:先看当前 UI outline,再明确执行点击、输入、滑动、截图等动作。
  • sim-use ui 会给屏幕元素生成 @N alias,agent 可以直接 tap @9,比坐标点击更清晰。
  • 适合临场调试:当前屏幕是什么、应该点哪里、点完后结果如何,都比较透明。
  • 如果以后需要同时操作 iOS 和 Android,跨平台价值明显。

sim-use 的不足

  • Android-only 场景下,跨平台优势用不上。
  • Android 侧需要额外 bridge APK 和 AccessibilityService,工具链依赖比官方 Android CLI 多。
  • 更像底层 UI 操作执行器,不是完整 Android 官方开发工作流。
  • 长期回归测试和 CI 沉淀,优先级不一定高于 Android CLI Journeys 或官方测试体系。

使用建议

只做 Android

优先使用 Android CLI。

实践路径:

  1. 先把 Android CLI 安装和项目接入跑通。
  2. 用 Journeys 编写关键用户路径。
  3. 使用 adb / logcat / Gradle 处理底层调试问题。
  4. 如果发现 Journey 对某些临场操作不够可控,再考虑补充 sim-use

需要跨端自动化

如果同时做 iOS 和 Android,可以考虑引入 sim-use,因为它的核心价值是跨平台统一屏幕操作。

需要非常精确的屏幕操作

如果目标是“先列当前屏幕所有可点击元素,再明确点某一个 alias”,sim-use 会更直接。

对比表

维度 Android CLI Journeys sim-use
定位 官方 Android agent workflow 跨端 UI 操作执行器
自动点击 支持 支持
操作方式 自然语言用户旅程 UI outline + 明确动作命令
平台 Android iOS Simulator + Android
生态集成 Android 官方生态更强 更独立,聚焦屏幕交互
CI/CD 更适合 Android 项目长期沉淀 可用,但更偏辅助和底层执行
透明度 高层抽象,略黑盒 操作步骤更直观
Android-only 推荐度 按需补充

最终判断

如果当前只做 Android:

用 Android CLI 就可以,优先不要一开始引入两套工具。

等 Android CLI 在实际项目中遇到无法覆盖的场景,再评估是否引入 sim-use