A
android-emulator-automation
About android-emulator-automation
An Android emulator automation skill for agents, using ADB and UIAutomator to inspect, launch, and interact with apps. It favors semantic selectors and reproducible smoke checks over coordinate-based actions, and is not a replacement for regression UI tests.
Key features
- 01Install or launch a specified app
- 02Dump and inspect the UI hierarchy
- 03Find controls by text or resource ID
- 04Check device state and boot completion
Use cases
- 01Launch an APK in an emulator and inspect its screen
- 02Interact reproducibly with semantic UI controls
- 03Check device readiness and troubleshoot selector issues
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ krutikjain/ android-agent-skills --skill android-emulator-automationAfter installing, type/android-emulator-automationin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
agents/openai.yamlreferences/official-links.mdpatterns.mdscenarios.mdscripts/app_launcher.pycommon.pydevice_health.pynavigator.pyrun_examples.shscreen_mapper.pyDetails
From the project READMEAndroid Emulator Automation
When To Use
- Use this skill when the request is about: android emulator automation, adb semantic ui automation, uiautomator dump and tap.
- Primary outcome: Use semantic ADB and UIAutomator workflows to inspect, launch, and interact with Android apps from agents.
- Reach for this skill when an agent needs to launch an APK, inspect the current screen, or perform a deterministic interaction without writing Espresso or Compose UI tests.
- Handoff skills when the scope expands:
android-testing-uiandroid-permissions-activity-results
Workflow
- Verify the Android SDK,
adb, the target device or emulator, and boot completion before attempting interaction. - Install or launch the target app with explicit package awareness so the request stays tied to the right artifact.
- Dump the current UI hierarchy and prefer semantic selectors such as text, content description, or resource ID over raw coordinates.
- Perform the smallest interaction that proves the workflow and re-dump the screen when state changes matter.
- Hand off long-lived regression coverage to UI tests once the automation path is understood.
Guardrails
- Prefer semantic selectors to pixel coordinates; only fall back to coordinates when the UI tree is missing the required metadata.
- Treat automation as an inspection and smoke tool, not a replacement for deterministic UI tests.
- Verify device state, package name, and boot completion before issuing input commands.
- Keep the scripts safe for CI by avoiding destructive shell commands or device-wide settings changes.
Anti-Patterns
- Hard-coding coordinates when text or resource IDs are available.
- Running emulator commands before the device is boot-complete.
- Treating flaky one-off automation as proof of a stable UI workflow.
- Mixing app install, interaction, and log scraping into one opaque script with no intermediate output.
Examples
Happy path
- Scenario: Build the Compose fixture, install it on an emulator, and dump the current OrbitTasks screen.
- Command:
bash skills/android-emulator-automation/scripts/run_examples.sh
Edge case
- Scenario: Launch a preinstalled app and target a single semantic control without relying on screen coordinates.
- Command:
python3 skills/android-emulator-automation/scripts/navigator.py --find-text "Blocked" --tap
Failure recovery
- Scenario: Confirm the device is discoverable and UIAutomator can dump the hierarchy before chasing a selector bug.
- Command:
python3 skills/android-emulator-automation/scripts/device_health.py --json
Done Checklist
- The target package, device serial, and current screen are explicit.
- Semantic selectors were preferred over coordinates.
- The automation path is reproducible in local development and CI.
- The request hands off to UI testing when the workflow needs regression coverage.
Official References
Comments
Markdown supported