new-silvermoon/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.
npx skills add https://github.com/new-silvermoon/awesome-android-agent-skills --skill android-emulator-skill
Build, test, and automate Android applications using accessibility-driven navigation and structured data instead of pixel coordinates.
# 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 "[email protected]"
All scripts support --help for detailed options and --json for machine-readable output.
--task, --clean, --jsonadb logcat--package, --tag, --priority, --duration, --jsonuiautomator--verbose, --json--find-text, --find-id, --tap, --enter-text, --json--swipe, --scroll, --duration, --json--key, --text, --jsonadb shell am start)adb shell am force-stop)--launch, --terminate, --install, --uninstall, --list, --json--list, --boot, --shutdown, --jsonemu_health_check.sh on macOS/Linux and emu_health_check.ps1 on WindowsAuto-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.
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.
Take new-silvermoon/android-emulator-skill from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.