Skillshub android-emulator-skill

Android Emulator Skill

install
source · Clone the upstream repo
git clone https://github.com/ComeOnOliver/skillshub
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ComeOnOliver/skillshub "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/new-silvermoon/awesome-android-agent-skills/android-emulator-skill" ~/.claude/skills/comeonoliver-skillshub-android-emulator-skill && rm -rf "$T"
manifest: skills/new-silvermoon/awesome-android-agent-skills/android-emulator-skill/SKILL.md
source content

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

  1. 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
  2. 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

Navigation & Interaction

  1. 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
  2. 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
  3. gesture.py - Perform swipes, scrolls, and other gestures

    • Swipe up/down/left/right
    • Scroll lists
    • Options:
      --swipe
      ,
      --scroll
      ,
      --duration
      ,
      --json
  4. keyboard.py - Key events and hardware buttons

    • Input key events (Home, Back, Enter, Tab)
    • Type text via ADB
    • Options:
      --key
      ,
      --text
      ,
      --json
  5. 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

Emulator Lifecycle Management

  1. emulator_manage.py - Manage Android Virtual Devices (AVDs)

    • List available AVDs
    • Boot emulators
    • Shutdown emulators
    • Options:
      --list
      ,
      --boot
      ,
      --shutdown
      ,
      --json
  2. 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.