mcpField
U
uiautomator2

uiautomator2

github.com/openatxテスト・品質8.5k41 回インストール6 日前に更新
リポジトリ

uiautomator2 について

uiautomator2 Python パッケージの `u2cli` で Android デバイスを自動操作するスキルです。画面の確認、アプリ操作、システム操作が必要なユーザー向けに、コマンドラインでのセレクター操作、画面確認、アプリ管理を提供します。

主な機能

  1. 01UI 階層とデバイス情報の確認
  2. 02スクリーンショットのローカル保存
  3. 03アプリの起動・停止・管理
  4. 04座標やセレクターによる画面操作
  5. 05テキスト入力とスワイプ・スクロール
  6. 06デバイスでのシェルコマンド実行

活用シーン

  1. 01画面を確認して要素を特定
  2. 02アプリを起動してフォームに入力
  3. 03アプリのインストールやデータ消去
  4. 04URL を開く、またはシステム UI を操作

インストール

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

$npx skills add https://github.com/openatx/uiautomator2 --skill uiautomator2

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

詳細

uiautomator2

このスキルでは、uiautomator2 Python パッケージが提供する u2cli を使用して、Android デバイスを自動化できます。

一般的な使い方

  • u2cli <command> [args] を使用してコマンドを実行します。
  • Android デバイスが複数接続されている場合は、u2cli -s <serial> <command> [args] を使用します。
  • 以下の例では <command> [args] のみを示しています。実行時は先頭に u2cli を付けてください。

コマンド

デバイスコマンド
  • dump-hierarchy:分析と要素の選択のために、現在の UI 階層をダンプします。まずはデフォルトの出力を使ってください。u2cli は返す前に出力を圧縮するため、通常はこれで十分であり、たとえば dump-hierarchy | grep -i "keyword" のように grep と組み合わせて使用できます。完全な非圧縮の階層が明示的に必要な場合に限り、dump-hierarchy --raw を使用してください。
  • screenshot:現在の画面をキャプチャし、ローカルファイルに保存します。出力はスクリーンショットのファイルパスとサイズです。例:screenshot /tmp/screenshot.jpg。
  • app-current:現在フォアグラウンドにあるアプリのパッケージ名とアクティビティを取得します。
  • device-info:デバイス情報を表示します。
  • window-size:画面ウィンドウのサイズを表示します。
  • shell:デバイス上でシェルコマンドを実行します。コマンドのタイムアウトを設定するには、--timeout <seconds> を使用します。例:shell "pm list packages"。
アプリコマンド
  • app-start:パッケージ名でアプリを起動します。オプション:--activity <activity>、--wait、--stop。例:app-start com.android.settings --activity .Settings --wait。
  • app-list:インストール済みパッケージを一覧表示します。
  • app-stop:パッケージ名でアプリを停止します。例:app-stop com.example.app。
  • app-install:APK をインストールします。例:app-install ./app-debug.apk。
  • app-uninstall:パッケージ名でアプリをアンインストールします。例:app-uninstall com.example.app。
  • app-clear:パッケージ名でアプリのデータを消去します。例:app-clear com.example.app。
入力コマンド
  • press:ハードウェアキーまたは Android キーを押します。例:press home。
  • send-keys:フォーカスされている入力欄にテキストを入力します。デフォルトでは入力前に内容を消去します。既存のテキストを保持するには --no-clear を使用します。例:send-keys "hello world"。
  • clear-text:フォーカスされている入力欄のテキストを消去します。例:clear-text。
  • click:座標またはセレクターを指定してクリックします。座標には X Y を使用するか、--text、--resource-id、--description、--class-name などのセレクターオプションを使用します。例:click 500 1200、比率の例:click 0.5 0.5、セレクターの例:click --text Gmail。
  • double-click:座標を指定してダブルクリックします。タップ間の遅延には --duration <seconds> を指定できます。このコマンドでは X Y の指定が必須です。セレクターオプションはサポートされていません。例:double-click 500 1200、比率の例:double-click 0.5 0.5。
  • long-click:座標またはセレクターを指定して長押しします。オプション:--duration <seconds>、--timeout <seconds>。例:long-click 500 1200、比率の例:long-click 0.5 0.5、セレクターの例:long-click --text Gmail。
  • swipe:ある座標から別の座標へスワイプします。引数は FX FY TX TY です。オプション:--duration <seconds>、--steps <number>、--scale <number>。例:swipe 500 1800 500 400 --duration 0.3、比率の例:swipe 0.5 0.8 0.5 0.2 --duration 0.3。
  • drag:ある座標から別の座標へドラッグします。引数は SX SY EX EY です。オプション:--duration <seconds>。例:drag 300 1200 800 1200、比率の例:drag 0.3 0.5 0.8 0.5。
セレクターコマンド
  • exists:セレクターが存在するか確認します。オプション:--timeout <seconds> とセレクターオプション。例:exists --text Gmail --timeout 3。
  • wait:セレクターが表示されるまで待機します。消えるまで待機するには --gone を使用します。オプション:--timeout <seconds> とセレクターオプション。例:wait --text Gmail --timeout 10。消えるまで待機する例:wait --text Loading --gone --timeout 10。
  • scroll:セレクターをスクロールします。オプション:--direction vert|horiz、--action forward|backward|toEnd|toBeginning、--max-swipes <number>、--to-text <text> とセレクターオプション。例:scroll --scrollable --direction vert --action forward。テキストまでスクロールする例:scroll --scrollable --to-text Settings。
システム UI コマンド
  • open-notification:通知シェードを開きます。
  • open-quick-settings:クイック設定を開きます。
  • open-url:デバイスで URL を開きます。例:open-url https://example.com。
共通セレクターオプション

click、long-click、exists、wait、scroll などのセレクターベースのコマンドで、これらのオプションを使用します。

  • テキストセレクター:--text <text>、--text-contains <text>、--text-matches <regex>、--text-starts-with <text>。
  • 説明セレクター:--description <text>、--description-contains <text>。
  • リソースおよびクラスのセレクター:--resource-id <id>、--class-name <class>、--package <package>。
  • 状態セレクター:--selected、--focused、--enabled、--scrollable、--clickable、--checked、--checkable。
  • 位置セレクター:--instance <number>、--index <number>。
  • 子セレクター:--child KEY=VALUE [KEY=VALUE ...] または --child-text、--child-resource-id、--child-class-name、--child-clickable、--child-index などの子セレクター専用オプションを使用して、子セレクターレベルを追加します。例:click --resource-id com.example:id/list --child text=OK。

コメント