用途:在 Android 环境开始新会话时,搭建并连接 Android 模拟器或物理设备,供 argent MCP 交互工具使用。
前提:Android SDK Platform Tools 需在 PATH 中(提供 adb);启动 AVD 还需要 Android Emulator 在 PATH 中,若只用已运行模拟器或物理设备则 adb 即可;需已通过 Android Studio 或 avdmanager create avd 创建 AVD。用 adb version 和 emulator -list-avds 验证。
用法:先调用 list-devices,筛选 platform: "android",优先取 state: "device" 的条目及其 serial(如 emulator-5554),除非用户指定。若没有就绪设备,调用 boot-device 并传 avdName(取自同一调用返回的 avds 列表)。该工具自动选择热启动或冷启动:探测 AVD 的 default_boot 快照,可用则在严格期限内恢复,否则回退完整冷启动;热启动约 30 秒,冷启动约 2–10 分钟;任一阶段失败会杀掉它启动的模拟器进程。React Native 场景下设备启动后执行 adb -s <serial> reverse tcp:8081 tcp:8081,设备重启后需重做。
交互:把 Android serial 作为 udid 传给 gesture-tap、gesture-swipe、describe、screenshot、launch-app、keyboard 等工具,分发按 id 形态自动判断。
限制与注意:Android TV/leanback AVD 走同样的 boot-device + avdName 流程,但由焦点驱动而非触摸,不要用 gesture-tap/gesture-swipe;list-devices 会用 runtimeKind: "tv" 标记,此时改用 describe / tv-remote / keyboard 等焦点驱动工具。Android 的 describe 返回的树比 iOS 浅,但覆盖多数点击目标发现。reinstall-app 在 Android 上始终以 -g 安装,预授予首次启动权限。停止模拟器应在 shell 执行 adb -s <serial> emu kill,切勿 pkill -9/kill -9 qemu,否则 userdata 镜像变脏、冷启动可能长时间卡住;若已发生,用 -wipe-data 启动一次重置。iOS UDID 与 Android serial 不可互换,但无需手动指定平台。