new-silvermoon/awesome-android-agent-skills

android-emulator-skill

Production-ready scripts for Android app testing, building, and automation.

Ver código fuente
Documento original del Skill

Contenido del repositorio de origen con títulos, ejemplos, código, tablas, enlaces e imágenes preservados.

Android Emulator Skill

Build, test, and automate Android applications using accessibility-driven navigation and structured data instead of pixel coordinates.

Quick Start

bash
# 1. Check environment (use .sh on macOS/Linux, .ps1 on Windows)
bash scripts/emu_health_check.sh
# or on Windows: .\scripts\emu_health_check.ps1

# 2. Launch app
python scripts/app_launcher.py --launch com.example.app

# 3. Map screen to see elements
python scripts/screen_mapper.py

# 4. Tap button
python scripts/navigator.py --find-text "Login" --tap

# 5. Enter text
python scripts/navigator.py --find-type EditText --enter-text "user@example.com"

All scripts support --help for detailed options and --json for machine-readable output.

Production Scripts

Build & Development

  1. build_and_test.py - Build Android projects, run tests, parse results
  • Wrapper around Gradle
  • Support for assemble, install, and connectedCheck
  • Parse build errors and test results
  • Options: --task, --clean, --json
  1. log_monitor.py - Real-time log monitoring with intelligent filtering
  • Wrapper around adb logcat
  • Filter by tag, priority, or PID
  • Deduplicate repeated messages
  • Options: --package, --tag, --priority, --duration, --json

Navigation & Interaction

  1. screen_mapper.py - Analyze current screen and list interactive elements
  • Dump UI hierarchy using uiautomator
  • Parse XML to identify buttons, text fields, etc.
  • Options: --verbose, --json
  1. navigator.py - Find and interact with elements semantically
  • Find by text (fuzzy matching), resource-id, or class name
  • Interactive tapping and text entry
  • Options: --find-text, --find-id, --tap, --enter-text, --json
  1. gesture.py - Perform swipes, scrolls, and other gestures
  • Swipe up/down/left/right
  • Scroll lists
  • Options: --swipe, --scroll, --duration, --json
  1. keyboard.py - Key events and hardware buttons
  • Input key events (Home, Back, Enter, Tab)
  • Type text via ADB
  • Options: --key, --text, --json
  1. app_launcher.py - App lifecycle management
  • Launch apps (adb shell am start)
  • Terminate apps (adb shell am force-stop)
  • Install/Uninstall APKs
  • List installed packages
  • Options: --launch, --terminate, --install, --uninstall, --list, --json

Emulator Lifecycle Management

  1. emulator_manage.py - Manage Android Virtual Devices (AVDs)
  • List available AVDs
  • Boot emulators
  • Shutdown emulators
  • Options: --list, --boot, --shutdown, --json
  1. emu_health_check - Verify environment is properly configured
  • Use emu_health_check.sh on macOS/Linux and emu_health_check.ps1 on Windows
  • Check ADB, Emulator, Java, Gradle, ANDROID_HOME
  • List connected devices

Common Patterns

Auto-Device Detection: Scripts target the single connected device/emulator if only one is present, or require -s <serial> if multiple are connected.

Output Formats: Default is concise human-readable output. Use --json for machine-readable output.

Requirements

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

Key Design Principles

Semantic Navigation: Find elements by text, resource-id, or content-description.

Token Efficiency: Concise default output with optional verbose and JSON modes.

Zero Configuration: Works with standard Android SDK installation.

del mismo repositorio

Más Skills

Todos los Skills