mcpField
A
argent-android-emulator-setup

argent-android-emulator-setup

github.com/software-mansion开发3.1k27.3k 次安装今天更新
代码仓库

关于 argent-android-emulator-setup

argent-android-emulator-setup 是一项 Android 设备设置技能,指导 Agent 查找可用设备,必要时启动 AVD,再将设备交给统一交互工具使用。说明涵盖 Android TV 的焦点操作方式及模拟器故障处理。

主要功能

  1. 01查找已就绪的 Android 设备
  2. 02按需启动 AVD 模拟器
  3. 03说明 React Native 的 Metro 连接
  4. 04区分 Android TV 的焦点操作
  5. 05提供模拟器关闭与恢复注意事项

适用场景

  1. 01为应用测试准备 Android 模拟器
  2. 02连接设备与 React Native Metro
  3. 03在 Android TV 模拟器上执行界面操作

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/software-mansion/argent --skill argent-android-emulator-setup

安装后在 Claude Code 中输入/argent-android-emulator-setup确认已加载。

详细介绍

1. 前置条件

  • PATH 中有 Android SDK Platform Tools:提供 adb。
  • PATH 中有 Android Emulator:启动 AVD 时需要。如果只使用已运行的模拟器或实体设备,则仅需 adb。
  • 通过 Android Studio 或 avdmanager create avd 创建的 AVD。

使用 adb version 和 emulator -list-avds 验证。

2. 设置

  1. 查找就绪设备:调用 list-devices。筛选 platform: "android" 的条目。就绪设备(state: "device")会排在最前面。选择第一个 serial(例如 emulator-5554),除非用户指定了设备。
  2. 如有需要,启动设备:如果没有就绪的 Android 设备,请根据同一次调用返回的 avds 列表,使用 avdName: <name> 调用 boot-device。工具会自动选择热启动或冷启动:它会检测 AVD 的 default_boot 快照,在可用时于严格的时限内恢复;否则会回退到完整冷启动。热启动通常约需 30 秒;冷启动需要 2–10 分钟。如果任何阶段失败,工具会终止其启动的模拟器进程,确保你下次调用时从干净状态开始。
  3. Metro(适用于 React Native):设备启动后,运行 adb -s <serial> reverse tcp:8081 tcp:8081,让设备能够访问主机上的 Metro。如果设备重启,请重复此操作。

3. 使用设备

将 Android 序列号作为 udid 传给统一交互工具:gesture-tap、gesture-swipe、describe、screenshot、launch-app、keyboard 等。工具会根据 ID 的格式自动分派。请参阅 argent-device-interact,了解跨平台交互工具,以及该技能底部的 Android 特定注意事项部分。

4. 注意事项

  • Android TV / leanback AVD 也通过这一完全相同的流程启动(使用 boot-device 和 avdName),但它们由焦点驱动,而非触控驱动;请勿对其使用 gesture-tap/gesture-swipe。list-devices 会将 leanback 设备标记为 runtimeKind: "tv"(根据系统功能列表检测,而非序列号:TV AVD 的序列号与手机 AVD 的格式完全相同)。看到 runtimeKind: "tv" 时,请使用由焦点驱动的工具(describe / tv-remote / keyboard)和 argent-tv-interact 技能(该技能涵盖 Android TV 和 Apple TV,包括完整的 TV 设置流程)。
  • 序列号就是 adb 设备 ID。iOS UDID 和 Android 序列号不能互换,但你无需告知工具设备平台:工具会自动分派。
  • Android 上的 describe 返回的树结构比 iOS 浅(没有与辅助功能服务等效的机制),但涵盖了大多数点击目标的发现需求。
  • Android 上的 reinstall-app 始终使用 -g 安装,因此首次启动时会预先授予运行时权限。
  • 若要停止模拟器,请在 shell 中运行 adb -s <serial> emu kill(正常关闭)。切勿使用 pkill -9/kill -9 终止 qemu:强制终止会使 userdata 镜像处于脏状态,导致之后的冷启动在恢复过程中卡住数分钟(写入失控,boot_completed 始终不会变为已完成)。如果镜像进入这种状态,请使用 -wipe-data 启动一次以重置它。

评论

支持 Markdown