Android emulator automation
Skill krutikJain/android-agent-skills/skills/android-emulator-automation
Use semantic ADB and UIAutomator workflows to inspect, launch, and interact with Android apps from agents.From its SKILL.md
npx -y skills add krutikJain/android-agent-skills --skill android-emulator-automationAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 14 stars14 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
- runs commandsInstructs the agent to run 3 commands, including `bash skills/android-emulator-automation/scripts/run_examples.sh` and 2 more.
SKILL.md
4.0 KB, 678 tokens by cl100k_base, as published. Nobody here has run it
Android 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
What ships with it: 10 files
20.5 KB alongside SKILL.md, 6 of them executable
agents/
- openai.yaml374 B
references/
- official-links.md378 B
- patterns.md747 B
- scenarios.md667 B
scripts/
- app_launcher.pyruns3.8 KB
- common.pyruns2.4 KB
- device_health.pyruns2.0 KB
- navigator.pyruns4.1 KB
- run_examples.shruns638 B
- screen_mapper.pyruns5.6 KB