mcpField
A
android-cli-ui-automation-skill

android-cli-ui-automation-skill

github.com/takahiromエージェントワークフロー1050 回インストール28 週間前に更新
リポジトリ

android-cli-ui-automation-skill について

コマンドラインで Android 端末の UI を操作するエージェント向けスキルです。操作のたびに画面を再確認し、構造化レイアウトとスクリーンショットを状況に応じて使い分けます。

主な機能

  1. 01アプリ、URL、APK の起動
  2. 02構造化 UI レイアウトの確認
  3. 03スクリーンショットの撮影と注釈
  4. 04adb によるタップとテキスト入力
  5. 05操作後の画面再確認

活用シーン

  1. 01アプリ UI の操作自動化
  2. 02WebView、マップ、カスタムキャンバスの操作
  3. 03接続済み端末から対象を選択

インストール

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

$npx skills add https://github.com/takahirom/android-cli-ui-automation-skill --skill android-cli-ui-automation-skill

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

同梱ファイルLICENSEREADME.md

詳細

目標に到達するまで、起動 → 観察 → 操作 → 再観察の短いループでデバイスを操作します。 構造化された UI には android layout を優先してください。より速い、または信頼性が高い場合は、スクリーンショットモードを使います。

複数のデバイスが接続されている場合は、adb devices -l でシリアル番号を取得します。android ... には --device=<serial> を、adb ... には -s <serial> を渡します。

1. 起動

  • ブラウザーで URL を開く: adb -s <serial> shell am start -a android.intent.action.VIEW -d '<url>'
  • インストール済みのアプリ: adb -s <serial> shell monkey -p <pkg> -c android.intent.category.LAUNCHER 1
  • APK ファイル: android run --apks=<path> --device=<serial> [--activity=<name>]

2. android layout で観察

android layout --device=<serial> --pretty --output=/tmp/ui.json

text、content-desc、または resource-id で対象を特定します。タップ座標にはノードの center を使います。

選択したモードで、各操作の後に再観察してください。変更点だけを確認したい場合は、android layout --device=<serial> --diff が便利です。

3. 画面を見て対象を特定しやすい場合は、スクリーンショットモードを使う

次の場合は、スクリーンショットモードが適していることがよくあります。

  • WebView やブラウザーページのコンテンツ
  • アイコンのみのカスタムビュー
  • キャンバス、マップ、ゲーム画面
  • layout の情報が煩雑または不完全な画面や、画像のほうがすばやく解釈できる画面
android screen capture --output=/tmp/ui.png --annotate
android screen resolve --screenshot=/tmp/ui.png --string="input tap #N"

ラベルは、そのスクリーンショットに対してのみ有効です。UI が変化するたびに、再度キャプチャしてください。

4. adb shell input で操作

adb -s <serial> shell input tap <x> <y>
adb -s <serial> shell input text '<text-with-%s-for-spaces>'
adb -s <serial> shell input swipe <x1> <y1> <x2> <y2> <ms>
adb -s <serial> shell input keyevent <KEYCODE>

例:adb -s <serial> shell input text 'hello%sworld'

ルール

  • 操作のたびに再観察してください。座標とスクリーンショットのラベルは、すぐに古くなります。
  • まず操作を妨げるものを解消してください:権限ダイアログ、オンボーディング画面、更新プロンプト。
  • より明確な観察モードを使います:構造化された UI には layout、視覚的な UI にはスクリーンショットを使います。

注記

  • URL をアドレスバーに入力しないでください。am start -a VIEW -d '<url>' で開きます。
  • フォアグラウンドのアプリが不明な場合は、adb -s <serial> shell dumpsys window | rg 'mCurrentFocus|mFocusedApp' で確認します。

コメント