Android Emulator Skill
Build, test, and automate Android applications using accessibility-driven navigation and structured data instead of pixel coordinates.
Quick Start
# 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
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
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
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
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
gesture.py - Perform swipes, scrolls, and other gestures
- Swipe up/down/left/right
- Scroll lists
- Options:
--swipe, --scroll, --duration, --json
keyboard.py - Key events and hardware buttons
- Input key events (Home, Back, Enter, Tab)
- Type text via ADB
- Options:
--key, --text, --json
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
emulator_manage.py - Manage Android Virtual Devices (AVDs)
- List available AVDs
- Boot emulators
- Shutdown emulators
- Options:
--list, --boot, --shutdown, --json
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.
Source: new-silvermoon/awesome-android-agent-skills → .github/skills/testing_and_automation/android-emulator-skill/SKILL.md
1---2name: android-emulator-skill3description: Production-ready scripts for Android app testing, building, and automation. Provides semantic UI navigation, build automation, log monitoring, and emulator lifecycle management. Optimized for AI agents with minimal token output.4---567# Android Emulator Skill89Build, test, and automate Android applications using accessibility-driven navigation and structured data instead of pixel coordinates.1011## Quick Start1213```bash14# 1. Check environment (use .sh on macOS/Linux, .ps1 on Windows)15bash scripts/emu_health_check.sh16# or on Windows: .\scripts\emu_health_check.ps11718# 2. Launch app19python scripts/app_launcher.py --launch com.example.app2021# 3. Map screen to see elements22python scripts/screen_mapper.py2324# 4. Tap button25python scripts/navigator.py --find-text "Login" --tap2627# 5. Enter text28python scripts/navigator.py --find-type EditText --enter-text "user@example.com"29```3031All scripts support `--help` for detailed options and `--json` for machine-readable output.3233## Production Scripts3435### Build & Development36371. **build_and_test.py** - Build Android projects, run tests, parse results38 - Wrapper around Gradle39 - Support for assemble, install, and connectedCheck40 - Parse build errors and test results41 - Options: `--task`, `--clean`, `--json`42432. **log_monitor.py** - Real-time log monitoring with intelligent filtering44 - Wrapper around `adb logcat`45 - Filter by tag, priority, or PID46 - Deduplicate repeated messages47 - Options: `--package`, `--tag`, `--priority`, `--duration`, `--json`4849### Navigation & Interaction50513. **screen_mapper.py** - Analyze current screen and list interactive elements52 - Dump UI hierarchy using `uiautomator`53 - Parse XML to identify buttons, text fields, etc.54 - Options: `--verbose`, `--json`55564. **navigator.py** - Find and interact with elements semantically57 - Find by text (fuzzy matching), resource-id, or class name58 - Interactive tapping and text entry59 - Options: `--find-text`, `--find-id`, `--tap`, `--enter-text`, `--json`60615. **gesture.py** - Perform swipes, scrolls, and other gestures62 - Swipe up/down/left/right63 - Scroll lists64 - Options: `--swipe`, `--scroll`, `--duration`, `--json`65666. **keyboard.py** - Key events and hardware buttons67 - Input key events (Home, Back, Enter, Tab)68 - Type text via ADB69 - Options: `--key`, `--text`, `--json`70717. **app_launcher.py** - App lifecycle management72 - Launch apps (`adb shell am start`)73 - Terminate apps (`adb shell am force-stop`)74 - Install/Uninstall APKs75 - List installed packages76 - Options: `--launch`, `--terminate`, `--install`, `--uninstall`, `--list`, `--json`7778### Emulator Lifecycle Management79808. **emulator_manage.py** - Manage Android Virtual Devices (AVDs)81 - List available AVDs82 - Boot emulators83 - Shutdown emulators84 - Options: `--list`, `--boot`, `--shutdown`, `--json`85869. **emu_health_check** - Verify environment is properly configured87 - Use `emu_health_check.sh` on macOS/Linux and `emu_health_check.ps1` on Windows88 - Check ADB, Emulator, Java, Gradle, ANDROID_HOME89 - List connected devices9091## Common Patterns9293**Auto-Device Detection**: Scripts target the single connected device/emulator if only one is present, or require `-s <serial>` if multiple are connected.9495**Output Formats**: Default is concise human-readable output. Use `--json` for machine-readable output.9697## Requirements9899- Android SDK Platform-Tools (adb, fastboot)100- Android Emulator101- Java / OpenJDK102- Python 3103104## Key Design Principles105106**Semantic Navigation**: Find elements by text, resource-id, or content-description.107108**Token Efficiency**: Concise default output with optional verbose and JSON modes.109110**Zero Configuration**: Works with standard Android SDK installation.111112---113114**Source:** [`new-silvermoon/awesome-android-agent-skills`](https://github.com/new-silvermoon/awesome-android-agent-skills) → `.github/skills/testing_and_automation/android-emulator-skill/SKILL.md`