mcpField
A
android-adb

android-adb

github.com/httprunner開発2964 回インストール35 週間前に更新
リポジトリ

android-adb について

adb コマンドで Android デバイスを操作するためのリファレンスです。デバイス状態の確認やアプリ操作、画面入力を行う開発者向けに、接続、アプリの起動、入力、スクリーンショットなどを扱います。

主な機能

  1. 01デバイスと画面状態の確認
  2. 02USB または Wi-Fi で接続
  3. 03アプリの起動とアンインストール
  4. 04タップとテキスト入力
  5. 05スクリーンショットと UI 階層の取得

活用シーン

  1. 01接続中の Android デバイスの確認
  2. 02アプリの起動と UI 操作
  3. 03アプリへのテキスト入力
  4. 04スクリーンショットや UI 階層の保存

インストール

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

$npx skills add https://github.com/httprunner/skills --skill android-adb

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

詳細

Android ADB

adb の生コマンドを使用して Android デバイスを操作するためのリファレンスです。

実行時の制約

  • 接続されているデバイスが複数ある場合は、必ず adb -s <serial> を使用してください。
  • 座標を指定した操作を行う前に、画面の解像度を確認してください:adb -s SERIAL shell wm size。
  • 実行に必要な情報が不足している場合は、実行前に確認してください(シリアル番号、パッケージ/アクティビティ、座標、APK のパス)。
  • 失敗時は、対処に役立つ stderr を提示してください(認証、ケーブル/ネットワーク、tcpip の状態)。
  • ADB Keyboard がインストールされている場合は、CJK 文字や特殊文字の入力には ADB Keyboard のブロードキャストを優先してください。

デバイスとサーバー

# Start ADB server
adb start-server

# Stop ADB server
adb kill-server

# List devices
adb devices -l

# Target a specific device (use when multiple devices are online)
adb -s SERIAL <command>

Wi-Fi 接続

# Enable tcpip (USB required first)
adb -s SERIAL tcpip 5555

# Get device IP
adb -s SERIAL shell ip route | grep src
# or
adb -s SERIAL shell ip addr show wlan0

# Connect over network
adb connect <ip>:5555

# Disconnect
adb disconnect <ip>:5555

デバイスの状態

# Screen size
adb -s SERIAL shell wm size

# Current foreground app (package/activity from mCurrentFocus)
adb -s SERIAL shell dumpsys window | grep -E 'mCurrentFocus|mFocusedApp'

# Get home launcher package (for back-home detection)
adb -s SERIAL shell cmd package resolve-activity --brief -c android.intent.category.HOME

# Raw shell command
adb -s SERIAL shell <command>

アプリのライフサイクル

# Verify package installed
adb -s SERIAL shell pm list packages | grep <package>

# Launch by package (via monkey)
adb -s SERIAL shell monkey -p <package> -c android.intent.category.LAUNCHER 1

# Launch by activity
adb -s SERIAL shell am start -W -n <package>/<activity>

# Launch by URI/scheme
adb -s SERIAL shell am start -W -a android.intent.action.VIEW -d "<scheme://path>"

# Force-stop
adb -s SERIAL shell am force-stop <package>

入力操作

# Tap
adb -s SERIAL shell input tap X Y

# Double tap (two taps with short delay)
adb -s SERIAL shell input tap X Y && sleep 0.1 && adb -s SERIAL shell input tap X Y

# Long press (swipe to same point with duration)
adb -s SERIAL shell input swipe X Y X Y 3000

# Swipe
adb -s SERIAL shell input swipe X1 Y1 X2 Y2 [duration_ms]

# Key event
adb -s SERIAL shell input keyevent KEYCODE_BACK
adb -s SERIAL shell input keyevent KEYCODE_HOME
adb -s SERIAL shell input keyevent KEYCODE_ENTER

# Return to home (press BACK repeatedly, check foreground against home launcher)
for i in $(seq 1 20); do
  adb -s SERIAL shell input keyevent KEYCODE_BACK
  sleep 0.5
  # Check if home reached by comparing current focus to home package
  CURRENT=$(adb -s SERIAL shell dumpsys window | grep mCurrentFocus)
  echo "Round $i: $CURRENT"
done

テキスト入力

# Plain text input (ASCII only, spaces escaped as %s)
adb -s SERIAL shell input text "hello%sworld"

# Input via ADB Keyboard (supports CJK and special characters)
# First ensure ADB Keyboard is active:
adb -s SERIAL shell ime set com.android.adbkeyboard/.AdbIME
# Then send text (base64 encoded):
adb -s SERIAL shell am broadcast -a ADB_INPUT_B64 --es msg "$(echo -n 'your text' | base64)"

# Clear text via ADB Keyboard
adb -s SERIAL shell am broadcast -a ADB_CLEAR_TEXT

スクリーンショットと UI ツリー

# Screenshot to local file
adb -s SERIAL exec-out screencap -p > screenshot.png

# Screenshot to device then pull
adb -s SERIAL shell screencap -p /sdcard/screen.png
adb -s SERIAL pull /sdcard/screen.png ./screen.png

# Dump UI hierarchy XML
adb -s SERIAL shell uiautomator dump /sdcard/window_dump.xml
adb -s SERIAL pull /sdcard/window_dump.xml ./window_dump.xml

アプリのインストールとアンインストール

# Install APK (replace existing)
adb -s SERIAL install -r /path/to/app.apk

# Uninstall
adb -s SERIAL uninstall <package>

よく使うキーコード

キーコード説明
KEYCODE_BACK戻るボタン
KEYCODE_HOMEホームボタン
KEYCODE_ENTEREnter/確定
KEYCODE_DEL削除/バックスペース
KEYCODE_VOLUME_UP音量を上げる
KEYCODE_VOLUME_DOWN音量を下げる
KEYCODE_POWER電源ボタン
KEYCODE_TABTab キー
KEYCODE_ESCAPEEscape キー

コメント