SuperAPI AI 工具集

android-emulator-skill

测试与质量

查看项目

更新于 10-17 16:16

技能介绍

Android Emulator Skill 是一套用于 Android 应用测试、构建和自动化的生产级脚本集合。其核心思路是使用无障碍驱动的导航和结构化数据来定位与操作界面元素,而不是依赖像素坐标,从而提升自动化脚本的稳定性和可维护性。

主要能力

该技能提供多类脚本,覆盖 Android 开发与测试的常见环节:

构建与开发

  • build_and_test.py:构建 Android 项目、运行测试并解析结果。它是 Gradle 的封装,支持 assemble、install 和 connectedCheck,可解析构建错误与测试结果。选项包括 --task、--clean、--json。
  • log_monitor.py:实时日志监控与智能过滤。它是 adb logcat 的封装,可按 tag、优先级或 PID 过滤,并对重复消息去重。选项包括 --package、--tag、--priority、--duration、--json。

导航与交互

  • screen_mapper.py:分析当前屏幕并列出可交互元素。使用 uiautomator 导出 UI 层级,解析 XML 以识别按钮、文本字段等。选项包括 --verbose、--json。
  • navigator.py:以语义方式查找并交互元素。支持按文本(模糊匹配)、resource-id 或类名查找,并可执行点击和文本输入。选项包括 --find-text、--find-id、--tap、--enter-text、--json。
  • gesture.py:执行滑动、滚动等手势。支持上/下/左/右滑动以及列表滚动。选项包括 --swipe、--scroll、--duration、--json。
  • keyboard.py:按键事件与硬件按钮。可输入按键事件(Home、Back、Enter、Tab),并通过 ADB 输入文本。选项包括 --key、--text、--json。
  • app_launcher.py:应用生命周期管理。可启动应用(adb shell am start)、终止应用(adb shell am force-stop)、安装/卸载 APK、列出已安装包。选项包括 --launch、--terminate、--install、--uninstall、--list、--json。

模拟器生命周期管理

  • emulator_manage.py:管理 Android 虚拟设备(AVD)。可列出可用 AVD、启动模拟器、关闭模拟器。选项包括 --list、--boot、--shutdown、--json。
  • emu_health_check.sh:验证环境是否正确配置。检查 ADB、Emulator、Java、Gradle、ANDROID_HOME,并列出已连接设备。

使用方式

快速开始流程如下:

  1. 检查环境:bash scripts/emu_health_check.sh
  2. 启动应用:python scripts/app_launcher.py --launch com.example.app
  3. 映射屏幕以查看元素:python scripts/screen_mapper.py
  4. 点击按钮:python scripts/navigator.py --find-text "Login" --tap
  5. 输入文本:python scripts/navigator.py --find-type EditText --enter-text "user@example.com"

所有脚本均支持 --help 查看详细选项,并支持 --json 输出机器可读结果。

常见模式

  • 自动设备检测:当仅连接一个设备/模拟器时,脚本自动定位该设备;当连接多个设备时,需要指定 -s <serial>。
  • 输出格式:默认输出简洁的人类可读文本;使用 --json 可获得机器可读输出。

适用场景

该技能适用于 Android 应用的自动化构建、测试与 UI 交互,例如在持续集成或本地开发中自动启动应用、定位并操作界面元素、监控日志、管理模拟器,以及执行构建和测试任务。

依赖要求

  • Android SDK Platform-Tools(adb、fastboot)
  • Android Emulator
  • Java / OpenJDK
  • Python 3

设计原则

  • 语义化导航:按文本、resource-id 或 content-description 查找元素。
  • Token 效率:默认输出简洁,可选 verbose 和 JSON 模式。
  • 零配置:可与标准 Android SDK 安装配合使用。

限制

资料未提供关于收费、价格、平台兼容性范围、性能指标或具体效果的信息,暂未提供。