SuperAPI AI 工具集

android-emulator

测试与质量

查看项目

更新于 10-15 17:35

技能介绍

用途:这是一个 bash 辅助脚本(scripts/emu.sh),封装 adb 与 qemu 模拟器控制台,让 AI 智能体能够查看(截图、无障碍树)并操作(点击、长按、滑动、捏合)运行在 Android 模拟器上的 Flutter 应用。适用于启动、调试、冒烟测试、QA 或截图 Flutter Android 应用。

主要能力:模拟器生命周期(boot 冷启动并等待 sys.boot_completed、exit 关闭、health 状态检查、devices/size/foreground、app-running);应用控制(launch、stop、run 后台启动 flutter run、wait-run 阻塞等待、kill-run、log 查看日志);坐标输入(screenshot、tap、hold、swipe、pinch);基于标签的输入(ui-list、ui-find、ui-dump、tap-label、hold-label),通过 uiautomator dump 读取无障碍树,按 text、content-desc、resource-id 或 hint 匹配节点。

使用方式:脚本位于 scripts/emu.sh。典型流程为 boot → run → wait-run → health → ui-list。run 会自动向上查找 pubspec.yaml 定位项目根目录,存在 .fvm/ 时使用 fvm flutter。坐标基于 360 像素宽的截图空间。

限制:需要 Android SDK(adb、emulator 在 PATH 或 ~/Library/Android/sdk/、~/Android/Sdk/)、至少一个 AVD 和 Flutter(或 fvm);截图重采样依赖 macOS 的 sips。Flutter 应用需启用语义树(如 kDebugMode 下调用 SemanticsBinding.instance.ensureSemantics()),否则 ui-list 无有效节点。adb shell input 仅支持单点触控,长按需用 hold,捏合需经 qemu 控制台。run 始终启动新的 flutter run,不支持热重载。同一模拟器只能承载一个 flutter 守护进程。

环境变量:ANDROID_EMU_DEVICE、ANDROID_EMU_AVD、ANDROID_EMU_PKG、ANDROID_EMU_PROJECT_ROOT、ANDROID_EMU_FLUTTER_CMD、ANDROID_EMU_CONSOLE_PORT、ANDROID_EMU_SHOT_QUALITY、ANDROID_EMU_WAIT_SECS、ANDROID_EMU_BOOT_SECS、ANDROID_EMU_TMP_ID。