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 bash scripts/emu_health_check.sh # 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
- •Wrapper around
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
- •Dump UI hierarchy using
- •
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
- •Launch apps (
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.sh - Verify environment is properly configured
- •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.