mcpField
A
android-emulator-skill

android-emulator-skill

github.com/new-silvermoonテスト・品質992552 回インストール13 週間前に更新
リポジトリ

android-emulator-skill について

Android 開発者向けのスキルです。アクセシビリティ階層と UI 要素の意味情報を使い、ピクセル座標に頼らずアプリのビルド、テスト、自動化を行うスクリプトを提供します。

主な機能

  1. 01Gradle のビルドとテスト
  2. 02意味情報による UI 操作
  3. 03ジェスチャーとキー入力
  4. 04アプリのインストールとライフサイクル管理
  5. 05AVD と環境の確認

活用シーン

  1. 01Android のビルドと接続端末テスト
  2. 02テキストやリソース ID によるアプリ操作
  3. 03アプリログの確認と絞り込み
  4. 04エミュレーターの起動と終了

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/new-silvermoon/awesome-android-agent-skills --skill android-emulator-skill

インストール後、Claude Code で/android-emulator-skillを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

scripts/
app_launcher.py
build_and_test.py
common.py
emu_health_check.ps1
emu_health_check.sh
emulator_manage.py
gesture.py
keyboard.py
log_monitor.py
navigator.py
screen_mapper.py

詳細

Android Emulator Skill

ピクセル座標ではなく、アクセシビリティに基づくナビゲーションと構造化データを使って、Android アプリケーションのビルド、テスト、自動化を行います。

クイックスタート

# 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]"

すべてのスクリプトは、詳細なオプションを表示する --help と、機械可読な出力を生成する --json に対応しています。

本番環境向けスクリプト

ビルドと開発
  1. build_and_test.py - Android プロジェクトをビルドし、テストを実行して結果を解析します

    • Gradle のラッパーです
    • assemble、install、connectedCheck に対応しています
    • ビルドエラーとテスト結果を解析します
    • オプション:--task、--clean、--json
  2. log_monitor.py - インテリジェントなフィルタリングによるリアルタイムのログ監視

    • adb logcat のラッパーです
    • タグ、優先度、または PID でフィルタリングします
    • 繰り返されるメッセージの重複を除去します
    • オプション:--package、--tag、--priority、--duration、--json
ナビゲーションと操作
  1. screen_mapper.py - 現在の画面を分析し、操作可能な要素を一覧表示します

    • uiautomator を使って UI 階層をダンプします
    • XML を解析して、ボタンやテキストフィールドなどを特定します
    • オプション:--verbose、--json
  2. navigator.py - 意味に基づいて要素を検索し、操作します

    • テキスト(あいまい一致)、resource-id、またはクラス名で検索します
    • 要素のタップとテキスト入力に対応しています
    • オプション:--find-text、--find-id、--tap、--enter-text、--json
  3. gesture.py - スワイプ、スクロール、その他のジェスチャーを実行します

    • 上下左右にスワイプします
    • リストをスクロールします
    • オプション:--swipe、--scroll、--duration、--json
  4. keyboard.py - キーイベントとハードウェアボタンを操作します

    • キーイベント(Home、Back、Enter、Tab)を入力します
    • ADB 経由でテキストを入力します
    • オプション:--key、--text、--json
  5. app_launcher.py - アプリのライフサイクルを管理します

    • アプリを起動します(adb shell am start)
    • アプリを終了します(adb shell am force-stop)
    • APK をインストール/アンインストールします
    • インストール済みのパッケージを一覧表示します
    • オプション:--launch、--terminate、--install、--uninstall、--list、--json
エミュレーターのライフサイクル管理
  1. emulator_manage.py - Android Virtual Device(AVD)を管理します

    • 利用可能な AVD を一覧表示します
    • エミュレーターを起動します
    • エミュレーターを終了します
    • オプション:--list、--boot、--shutdown、--json
  2. emu_health_check - 環境が適切に設定されていることを確認します

    • macOS/Linux では emu_health_check.sh を、Windows では emu_health_check.ps1 を使用します
    • ADB、Emulator、Java、Gradle、ANDROID_HOME を確認します
    • 接続されているデバイスを一覧表示します

よくあるパターン

デバイスの自動検出:接続されているデバイス/エミュレーターが 1 台だけの場合、スクリプトはそのデバイスを対象にします。複数台接続されている場合は、-s <serial> を指定する必要があります。

出力形式:デフォルトでは簡潔で人が読みやすい形式で出力されます。機械可読な出力には --json を使用してください。

要件

  • Android SDK Platform-Tools(adb、fastboot)
  • Android Emulator
  • Java/OpenJDK
  • Python 3

主な設計原則

意味に基づくナビゲーション:テキスト、resource-id、または content-description で要素を検索します。

トークン効率:デフォルトでは簡潔に出力し、必要に応じて詳細モードや JSON モードを利用できます。

設定不要:標準的な Android SDK のインストール環境で動作します。

コメント