android-adb について
adb コマンドで Android デバイスを操作するためのリファレンスです。デバイス状態の確認やアプリ操作、画面入力を行う開発者向けに、接続、アプリの起動、入力、スクリーンショットなどを扱います。
主な機能
- 01デバイスと画面状態の確認
- 02USB または Wi-Fi で接続
- 03アプリの起動とアンインストール
- 04タップとテキスト入力
- 05スクリーンショットと UI 階層の取得
活用シーン
- 01接続中の Android デバイスの確認
- 02アプリの起動と UI 操作
- 03アプリへのテキスト入力
- 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_ENTER | Enter/確定 |
KEYCODE_DEL | 削除/バックスペース |
KEYCODE_VOLUME_UP | 音量を上げる |
KEYCODE_VOLUME_DOWN | 音量を下げる |
KEYCODE_POWER | 電源ボタン |
KEYCODE_TAB | Tab キー |
KEYCODE_ESCAPE | Escape キー |
コメント
Markdown 対応