用途:当任务涉及 Android 模拟器自动化、ADB 语义化 UI 自动化、UIAutomator dump 与点击时使用。主要目标是让智能体用语义化 ADB 与 UIAutomator 工作流检查、启动并交互 Android 应用,例如启动 APK、查看当前屏幕或执行确定性交互,而不必编写 Espresso 或 Compose UI 测试。
主要能力与工作流:先确认 Android SDK、adb、目标设备或模拟器以及启动完成状态;以明确的包名安装或启动目标应用;dump 当前 UI 层级,优先使用文本、内容描述或资源 ID 等语义选择器而非原始坐标;执行最小交互验证流程,状态变化时重新 dump 屏幕;当自动化路径明确后,将长期回归覆盖交给 UI 测试。范围扩大时可交接给 android-testing-ui、android-permissions-activity-results。
使用方式:示例命令包括 bash skills/android-emulator-automation/scripts/run_examples.sh、python3 skills/android-emulator-automation/scripts/navigator.py --find-text "Blocked" --tap、python3 skills/android-emulator-automation/scripts/device_health.py --json。
限制与护栏:优先语义选择器,仅在 UI 树缺少必要元数据时退回坐标;自动化仅作检查与冒烟工具,不替代确定性 UI 测试;发输入命令前须验证设备状态、包名与启动完成;脚本应避免破坏性 shell 命令或设备级设置更改,以适配 CI。反模式包括硬编码坐标、设备未启动完成就运行命令、把偶发自动化当作稳定 UI 流程证明、把安装交互与日志抓取混成一个无中间输出的脚本。官方参考见 developer.android.com 的 emulator、adb、ui-automator 与命令行测试文档。