> android-emulator-skill
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.
curl "https://skillshub.wtf/new-silvermoon/awesome-android-agent-skills/android-emulator-skill?format=md"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.
> related_skills --same-repo
> xml-to-compose-migration
Convert Android XML layouts to Jetpack Compose. Use when asked to migrate Views to Compose, convert XML to Composables, or modernize UI from View system to Compose.
> rxjava-to-coroutines-migration
Guide and execute the migration of asynchronous code from RxJava to Kotlin Coroutines and Flow. Use this skill when a user asks to convert RxJava (Observables, Singles, Completables, Subjects) to Coroutines (suspend functions, Flows, StateFlows).
> kotlin-concurrency-expert
Kotlin Coroutines review and remediation for Android. Use when asked to review concurrency usage, fix coroutine-related bugs, improve thread safety, or resolve lifecycle issues in Kotlin/Android code.
> gradle-build-performance
Debug and optimize Android/Gradle build performance. Use when builds are slow, investigating CI/CD performance, analyzing build scans, or identifying compilation bottlenecks.