android-cli-ui-automation-skill について
コマンドラインで Android 端末の UI を操作するエージェント向けスキルです。操作のたびに画面を再確認し、構造化レイアウトとスクリーンショットを状況に応じて使い分けます。
主な機能
- 01アプリ、URL、APK の起動
- 02構造化 UI レイアウトの確認
- 03スクリーンショットの撮影と注釈
- 04adb によるタップとテキスト入力
- 05操作後の画面再確認
活用シーン
- 01アプリ UI の操作自動化
- 02WebView、マップ、カスタムキャンバスの操作
- 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'で確認します。
コメント
Markdown 対応