关于 argent-android-emulator-setup
argent-android-emulator-setup 是一项 Android 设备设置技能,指导 Agent 查找可用设备,必要时启动 AVD,再将设备交给统一交互工具使用。说明涵盖 Android TV 的焦点操作方式及模拟器故障处理。
主要功能
- 01查找已就绪的 Android 设备
- 02按需启动 AVD 模拟器
- 03说明 React Native 的 Metro 连接
- 04区分 Android TV 的焦点操作
- 05提供模拟器关闭与恢复注意事项
适用场景
- 01为应用测试准备 Android 模拟器
- 02连接设备与 React Native Metro
- 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. 设置
- 查找就绪设备:调用
list-devices。筛选platform: "android"的条目。就绪设备(state: "device")会排在最前面。选择第一个serial(例如emulator-5554),除非用户指定了设备。 - 如有需要,启动设备:如果没有就绪的 Android 设备,请根据同一次调用返回的
avds列表,使用avdName: <name>调用boot-device。工具会自动选择热启动或冷启动:它会检测 AVD 的default_boot快照,在可用时于严格的时限内恢复;否则会回退到完整冷启动。热启动通常约需 30 秒;冷启动需要 2–10 分钟。如果任何阶段失败,工具会终止其启动的模拟器进程,确保你下次调用时从干净状态开始。 - 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