adb

Android Platform Tools 34+

Android Debug Bridge CLI のクイック リファレンス:デバイス検出、インストール / アンインストール、logcat、shell、push / pull、ポート フォワーディング、ワイヤレス デバッグ — よく使うオプションと実用例をまとめました。

33 コマンド

デバイス

adb devices

接続されているすべてのデバイス / エミュレーターをシリアルと状態(`device`、`unauthorized`、`offline`)とともに一覧表示します。

-l 長い詳細を表示(product、model、transport); -e エミュレーターのみ; -d USB デバイスのみ

adb devices -l
adb connect <ip>:<port>

Wi-Fi または TCP/IP 経由でデバイスに接続します(既定ポート 5555)。Android 11+ では最初に `adb pair <ip>:<port>` でペアリングしてください。

ip:port; --one-time セッション終了時に切断

adb pair 192.168.1.42:41235 && adb connect 192.168.1.42:5555
adb disconnect [<ip>:<port>]

1 つまたはすべてのワイヤレス デバイスから切断します。引数を渡さないとすべての接続を切断します。

adb disconnect 192.168.1.42:5555 && adb disconnect
adb -s <serial> <command>

複数のデバイスが接続されている場合に特定のデバイスをターゲットにします(`<serial>` を `adb devices` の値に置き換えてください)。

adb -s emulator-5554 shell pm list packages

インストール / アンインストール

adb install <apk>

APK をインストールします。`-r` はデータを保持して再インストール; `-d` はバージョン コードのダウングレードを許可; `-t` はテスト専用 APK を許可; `-g` はすべてのランタイム権限を付与。

-r; -d; -t; -g; --abi <abi>; --user <id>

adb install -r -g app-release.apk
adb install-multi-package <apk1> <apk2>

分割 APK バンドルをアトミックにインストールします — 複数の ABI / 構成を持つ App Bundle に使用されます。

adb install-multi-package base.apk split_config.arm64.apk
adb uninstall <package>

パッケージ名でアプリをアンインストールします。`-k` はデータ + キャッシュ ディレクトリを保持します。

-k ユーザー データを保持

adb uninstall com.example.myapp

Logcat

adb logcat

デバイスのログ バッファをストリーミングします。タグ / 優先度フィルター: `*:V`(詳細)、`*:E`(エラー)。

-v threadtime; -d ダンプして終了; -s <tag>; -t <N>; --pid=<pid>; -f <file> ファイルに書き込む

adb logcat *:E
adb logcat -d

現在のバッファを stdout にダンプして終了します(非ストリーミング)。一回限りの検査のために grep と組み合わせます。

-d -t 500 最後の 500 行

adb logcat -d -t 200 | grep -i 'myapp'
adb logcat -s <tag>:<level>

特定のレベル(V/D/I/W/E)で特定のタグのエントリのみを表示します。タグを空白で組み合わせます。

MyTag:D MyTag2:E

adb logcat -s MyApp:V ReactNative:V

Shell

adb shell

デバイスの対話型シェルに入ります。ほとんどの Unix ユーティリティが動作します; `/sdcard` はパブリック ストレージ ルートです。

-t TTY を割り当て(対話型プログラム用)

adb shell
adb shell <command>

デバイス上で単一のコマンドを実行し、出力を返します。ホスト / デバイスの引数を混在させるときは慎重に引用符で囲んでください。

adb shell pm list packages | grep com.example && adb shell dumpsys battery
adb shell pm list packages

インストール済みパッケージを一覧表示します。`-f` はパスを表示、`-3` はユーザー インストール アプリにフィルター、`-d` は無効なパッケージにフィルター。

-f パス; -3 ユーザー アプリ; -d 無効; -e 有効; -s システム; <filter>

adb shell pm list packages -3 | head -30
adb shell am start -n <package>/<activity>

`package/activity` 修飾名でアクティビティを起動します。起動の完了を待つには `am start -W` を使用します。

-a <action>; -d ; --es <key> <val> 余分な文字列; -W 待機

adb shell am start -n com.example/.MainActivity
adb shell screencap -p /sdcard/screen.png

デバイス画面を PNG としてキャプチャします。取得するには `adb pull` と組み合わせます。

-p PNG(既定)

adb shell screencap -p /sdcard/screen.png && adb pull /sdcard/screen.png .
adb shell input <source> <command>

入力イベントを挿入します。一般的なもの: `tap x y`、`swipe x1 y1 x2 y2 [ms]`、`keyevent <code>`、`text "string"`。

tap; swipe; keyevent; text; roll; press

adb shell input tap 540 1200 && adb shell input keyevent 4

ファイル転送

adb push <local> <remote>

ローカル ファイル / ディレクトリをデバイスにコピーします。同期セマンティクス; バイナリ ファイルを保持します。

--sync 古いファイルのみ上書き; --copy-links シンボリック リンクを保持; -p 進捗を表示

adb push app-debug.apk /sdcard/Download/ && adb push ./assets /sdcard/myapp/assets
adb pull <remote> <local>

デバイス ファイル / ディレクトリをホストにコピーします。既定の宛先は `.`(現在のディレクトリ)。

-a タイムスタンプを保持; -p 進捗を表示

adb pull /sdcard/screen.png ./screenshots/latest.png

フォワーディング

adb forward tcp:<host-port> tcp:<device-port>

ホスト ポートをデバイス ポートにフォワードします — Chrome タブに対して Chrome リモート デバッグ ソケットを開くために一般的に使用されます。

--remove; --remove-all

adb forward tcp:9222 localabstract:chrome_devtools_remote
adb reverse tcp:<device-port> tcp:<host-port>

デバイス ポートをホスト ポートにリバース フォワードします — dev サーバーが `localhost:3000` で動作していて、デバイスがそれにヒットする必要がある場合に便利です。

adb reverse tcp:3000 tcp:3000 && curl http://localhost:3000/api/health
adb forward --list

アクティブなポート フォワードとリバースを一覧表示します。リセットするには `adb forward --remove-all` と組み合わせます。

adb forward --list && adb reverse --list

アプリ管理

adb shell pm clear <package>

特定のパッケージのアプリ データ + キャッシュを消去します — `Settings → Apps → Storage → Clear` と同じ効果です。

adb shell pm clear com.example.myapp
adb shell pm grant <package> <permission>

UI プロンプトなしでランタイム権限(例: `android.permission.CAMERA`)を付与します — テスト セットアップで一般的です。

adb shell pm grant com.example.myapp android.permission.READ_CONTACTS
adb shell am force-stop <package>

実行中のアプリを強制停止します(プロセスが強制終了されます)。フォアグラウンド アプリを再インストールするときに便利です。

adb shell am force-stop com.example.myapp && adb install -r app.apk

ブート / リカバリ

adb reboot

デバイスを再起動します。バリアント: `recovery`、`bootloader`、`fastboot`、`download`、`edl`。

recovery | bootloader | fastboot | download | edl

adb reboot bootloader && fastboot flashall
adb sideload <zip>

リカバリ モード(通常は `adb reboot recovery` 経由で入力)から署名済み OTA / ファクトリー イメージ zip をサイドロードします。

adb sideload ota-update.zip

デバッグ

adb shell run-as <package> <cmd>

アプリの UID としてコマンドを実行します — デバッグ可能 APK が自身のプライベート データ ディレクトリを読み取るために必要です。

<package> cat ./databases/my.db > /sdcard/dump.db

adb shell run-as com.example.myapp ls databases
adb shell dumpsys <service>

システム サービス(`battery`、`window`、`activity`、`package`、`gfxinfo`、`netstats`)の状態をダンプします。

battery; activity; package; window; gfxinfo <pkg>; netstats

adb shell dumpsys gfxinfo com.example.myapp framestats

サーバー

adb start-server

adb サーバーを明示的に開始します(通常は任意のコマンドで自動開始されます)。`kill-server` の後に使用します。

adb start-server
adb kill-server

adb サーバーを停止し、すべてのデバイスを切断します。adb が `offline` 状態で動かなくなったときに便利です。

adb kill-server && adb start-server && adb devices

その他

adb --version

Platform Tools バージョンを表示します。

adb --version
adb help

すべての adb サブコマンドを 1 行説明とともに一覧表示します。

adb help

ワイヤレス

adb pair <ip>:<port>

開発者向けオプションに表示される 6 桁のペアリング コードを使用して Wi-Fi 経由でデバイスとペアリングします。次に実際のデバッグ ポートに `adb connect` します。

<ip>:<port>

adb pair 192.168.1.42:41235

関連コマンド速查

ADB について

Android Debug Bridge (adb)は Android SDK Platform Tools に同梱される(2009 年から)コマンドライン ツールです。開発ワークステーションと USB、Wi-Fi、または TCP/IP 経由の任意の Android デバイスまたはエミュレーターをブリッジし、3 つのサブ コンポーネントを公開します:サーバー(ホスト上で実行、ポート 5037)、デーモン(`adbd` はデバイス上で実行)、`adb` CLI。現在の Platform Tools 系は 34+(Android 14 とともにリリース)です。`adb` は APK のインストール、logcat の読み取り、JDWP 経由のアプリのデバッグ、ROM のサイドロード、UI テストのスクリプト化、ファイルの push/pull の基礎です。ワイヤレス デバッグは Android 11 で追加されました(13+ で QR ペアリング フロー)。一般的な兄弟コマンドには `fastboot`(ブートローダー / リカバリ)と `emulator`(QEMU ベースの AVD)があります。ADB はアプリのソース コードをアップロードしません — APK とデバイス状態を出荷します。SDK Platform Tools は Apache 2.0 ライセンスで、スタンドアロン ZIP または SDK Manager 経由で入手できます。

チートシート バージョン 1.0.0