デバイス接続と管理
接続されているデバイスの確認や、ADBサーバーの管理を行います。
| 目的 | コマンド | 説明 |
|---|---|---|
| 接続されているデバイス/エミュレータの一覧表示 | | 接続状態(`device`, `offline`, `unauthorized`)も表示されます。 |
| 詳細なデバイス情報表示 | | デバイス名やトランスポートIDなどの追加情報が表示されます。 |
| ADBサーバーの起動 | | ADBサーバーが起動していない場合に手動で起動します(通常は自動)。 |
| ADBサーバーの停止 | | ADBサーバーを強制終了します。接続がおかしいときに試します。 |
| デバイスを指定してコマンド実行 (USB接続デバイスが複数ある場合) | | ` |
| エミュレータを指定してコマンド実行 | | `emulator-5554` のように指定します。ポート番号は`adb devices`で確認できます。 |
| 特定のトランスポートIDを持つデバイスを指定 | | `adb devices -l` で表示されるトランスポートIDを指定します。 |
| USBデバイスを1つだけ指定(複数のUSBデバイス接続時) | | USB接続のデバイスが1台のみの場合に、そのデバイスを対象とします。 |
| エミュレータを1つだけ指定(複数のエミュレータ接続時) | | 実行中のエミュレータが1台のみの場合に、そのエミュレータを対象とします。 |
| デバイスの接続状態を待機 | | 指定した種類のデバイスがオンラインになるまで待機します。スクリプトで便利です。 |
| デバイスへの再接続 | | USBまたはTCP/IPで接続されているデバイスに再接続を試みます。 |
| オフラインデバイスへの再接続 | | オフライン状態 (`offline`) になっているデバイスの接続復旧を試みます。 |
| ADB サーバーのバージョン表示 | | インストールされている ADB のバージョン情報を表示します。 |
ファイル操作
デバイスとPC間でのファイル転送や、デバイス上のファイル操作を行います。
パスにスペースが含まれる場合は、パス全体をダブルクォーテーション(`”`)で囲ってください。
| 目的 | コマンド | 説明 |
|---|---|---|
| デバイスからPCへファイルをコピー | | デバイス上の` |
| PCからデバイスへファイルをコピー | | PCの` |
| デバイスからPCへディレクトリをコピー(再帰的) | | ディレクトリ全体をコピーします。 |
| PCからデバイスへディレクトリをコピー(再帰的) | | ディレクトリ全体をコピーします。デバイス側のディレクトリが存在しない場合は作成されます。 |
| 転送時にタイムスタンプを保持 (pull) | | ファイルの最終更新日時を保持してコピーします。 |
| 差分同期 (push) | | PC側で更新されたファイルのみをデバイスに転送します。転送時間の短縮に役立ちます。 |
| デバイス上のファイル一覧表示 | | 指定したディレクトリ内のファイルやディレクトリをリスト表示します。`ls -l`で詳細表示、`ls -a`で隠しファイルも表示します。 |
| デバイス上のファイル削除 | | 指定したファイルを削除します。 |
| デバイス上のディレクトリ削除 (空の場合) | | 空のディレクトリを削除します。 |
| デバイス上のディレクトリ削除 (中身ごと) | | ディレクトリとその中身を再帰的に削除します。`-f` は確認なしで強制削除します(注意して使用)。 |
| デバイス上のファイル移動/名前変更 | | ファイルを移動、またはファイル名を変更します。 |
| デバイス上にディレクトリ作成 | | 新しいディレクトリを作成します。 |
| デバイス上にネストしたディレクトリ作成 | | 親ディレクトリが存在しない場合でも、まとめて作成します。 |
| デバイス上のファイル内容表示 | | テキストファイルの内容などを標準出力に表示します。 |
アプリケーション管理
APKファイルのインストール、アンインストール、アプリ情報の取得などを行います。
| 目的 | コマンド | 説明 |
|---|---|---|
| APKファイルのインストール | | PC上にあるAPKファイルをデバイスにインストールします。 |
| APKファイルの上書きインストール | | 既にインストールされているアプリを、データを保持したまま上書きインストールします。 |
| ダウングレードインストールを許可 | | バージョン番号が低いAPKをインストールすることを許可します。 |
| テスト用APKのインストールを許可 | | `android:testOnly=”true”` が指定されたAPKのインストールを許可します。 |
| 付与された全権限を許可してインストール | | マニフェストで定義されている全てのランタイム権限を許可します (Android 6.0以降)。 |
| SDカードへのインストールを許可 (非推奨) | | 可能であれば外部ストレージ(SDカード)にインストールします。 |
| アプリケーションのアンインストール | | 指定したパッケージ名のアプリをアンインストールします。例: `adb uninstall com.example.myapp` |
| データを保持してアンインストール | | アプリ本体のみをアンインストールし、データとキャッシュディレクトリは保持します。 |
| インストール済みパッケージ一覧表示 | | デバイスにインストールされている全てのアプリのパッケージ名を表示します。 |
| システムアプリのパッケージ一覧表示 | | システムアプリのみを表示します。 |
| サードパーティアプリのパッケージ一覧表示 | | ユーザーがインストールしたアプリのみを表示します。 |
| 無効化されたアプリのパッケージ一覧表示 | | 無効状態になっているアプリのみを表示します。 |
| 有効なアプリのパッケージ一覧表示 | | 有効状態になっているアプリのみを表示します。 |
| パッケージ名でフィルタリングして表示 | | 指定した文字列がパッケージ名に含まれるアプリのみを表示します。例: `adb shell pm list packages google` |
| パッケージに対応するAPKファイルのパス表示 | | 指定したパッケージ名のAPKファイルがデバイス上のどこにあるかを表示します。 |
| アプリのデータとキャッシュを削除 | | 指定したアプリのユーザーデータとキャッシュを全て削除します(アプリを初期状態に戻します)。 |
| アプリの強制停止 | | 指定したパッケージ名のアプリを強制終了させます。 |
| アプリの権限を許可する | | 指定したアプリに特定のランタイム権限を付与します。例: `adb shell pm grant com.example.myapp android.permission.CAMERA` |
| アプリの権限を取り消す | | 指定したアプリから特定のランタイム権限を取り消します。 |
| アプリを有効化/無効化する (APIレベル依存) | | アプリ全体またはコンポーネントを有効化/無効化します。システムアプリなどは `disable-user` を使うことが多いです。 |
デバイス操作と情報取得
デバイスの再起動、スクリーンショット撮影、画面録画、各種情報の取得などを行います。
| 目的 | コマンド | 説明 |
|---|---|---|
| デバイスの再起動 (通常) | | デバイスを通常モードで再起動します。 |
| リカバリーモードで再起動 | | デバイスをリカバリーモードで再起動します。 |
| ブートローダーモードで再起動 | | デバイスをブートローダー(Fastbootモード)で再起動します。 |
| システムUIを含むシステムプロセスを再起動 (Soft Reboot) | | Android フレームワークと関連サービスを再起動します。通常の再起動より高速です。 |
| スクリーンショット撮影 (デバイスに保存) | | デバイスの画面を撮影し、指定したパスにPNGファイルとして保存します。 |
| スクリーンショット撮影 (PCに直接保存) | | デバイスの画面を撮影し、PNG形式でPCの標準出力に送ります。リダイレクトでファイルに保存できます。 |
| 画面録画 (デバイスに保存) | | デバイスの画面を録画し、MP4ファイルとして保存します。Ctrl+Cで録画を停止します。デフォルトは最大3分です。 |
| 画面録画 (時間制限付き) | | 録画時間を秒単位で指定します (例: 60秒)。 |
| 画面録画 (解像度指定) | | 録画する動画の解像度を指定します (幅x高さ)。 |
| 画面録画 (ビットレート指定) | | 録画する動画のビットレートを指定します (bps)。例: 8Mbps。 |
| デバイスのシリアル番号取得 | | 接続されているデバイスのシリアル番号を表示します。 |
| デバイスの状態取得 | | デバイスの状態 (`device`, `offline`, `bootloader` など) を表示します。 |
| Android OSのバージョン取得 | | OSのバージョン番号 (例: 13) を表示します。 |
| APIレベルの取得 | | Android SDKのAPIレベル (例: 33) を表示します。 |
| デバイスのモデル名取得 | | デバイスのモデル名 (例: Pixel 7 Pro) を表示します。 |
| 画面解像度の取得 | | 物理的な画面解像度を表示します。 |
| 画面密度の取得 (DPI) | | 画面の物理的な密度 (DPI) を表示します。 |
| IPアドレスの取得 | | デバイスのIPアドレスやネットワークインターフェース情報を表示します。 |
| デバイスの全プロパティ表示 | | デバイスのビルドプロパティやシステム設定などの全情報を表示します。 |
| 指定したキーイベントを送信 | | 指定したキーコードに対応するイベントをデバイスに送信します。例: `adb shell input keyevent 4` (戻るボタン) |
| テキスト入力を送信 | | 現在フォーカスが当たっているテキストフィールドに文字列を入力します。スペースは `%s` で表現します。例: `adb shell input text ‘Hello%sWorld’` |
| タップイベントを送信 | | 指定した座標 (x, y) をタップするイベントを送信します。 |
| スワイプイベントを送信 | | 開始座標 (x1, y1) から終了座標 (x2, y2) へスワイプするイベントを送信します。オプションで所要時間 (ミリ秒) を指定できます。 |
シェルコマンド実行
デバイス上でLinuxシェルコマンドを実行します。
adb shell の後にコマンドを続けると、そのコマンドを実行して終了します。引数なしで adb shell を実行すると、対話的なシェルセッションが開始されます。 | 目的 | コマンド | 説明 |
|---|---|---|
| 対話型シェルセッションの開始 | | デバイスに接続し、コマンドを対話的に入力できるようになります。`exit` で終了します。 |
| 単一のシェルコマンド実行 | | デバイス上で指定したコマンドを実行し、結果をPCの標準出力に表示します。例: `adb shell ls /sdcard/` |
| Activity Manager (am) コマンド実行 | | アクティビティの起動、サービスの開始/停止、ブロードキャストの送信などを行います。例: `adb shell am start -n com.android.settings/.Settings` |
| Package Manager (pm) コマンド実行 | | パッケージのインストール/アンインストール、権限管理、情報取得などを行います (一部は `adb install/uninstall` と同等)。 |
| デバイス上のプロセス一覧表示 | | 実行中のプロセスに関する情報を表示します (PID, USER, NAMEなど)。 |
| topコマンドでリソース使用状況表示 | | CPUやメモリの使用率が高いプロセスをリアルタイムで表示します。 |
| dumpsysでシステムサービスの状態表示 | | 様々なシステムサービスの状態や情報をダンプします。` |
| Activity Managerの状態ダンプ | | アクティビティスタック、実行中のサービス、プロセスなどの詳細情報を表示します。 |
| Window Managerの状態ダンプ | | ウィンドウ階層、フォーカス、画面表示に関する情報を表示します。 |
| メモリ情報のダンプ | | システム全体または指定したアプリ/プロセスのメモリ使用状況を表示します。 |
| ディスク空き容量の確認 | | ファイルシステムのディスク使用量と空き容量を表示します。 |
ログキャット (Logcat)
Androidシステムのログメッセージを表示・フィルタリングします。デバッグに不可欠です。
| 目的 | コマンド | 説明 |
|---|---|---|
| ログの表示開始 | | デバイスのログをリアルタイムで表示し続けます。Ctrl+Cで停止します。 |
| ログをファイルに出力 | | ログをPC上のファイルに保存します。 |
| ログバッファのクリア | | デバイス上の既存のログバッファを消去します。 |
| ログを指定した形式で表示 | | ` |
| 特定のタグでフィルタリング | | 指定したタグのログを指定した優先度以上で表示し、他のタグは表示しません (`*:S` は Silent)。優先度は V, D, I, W, E, F, S の順です。例: `adb logcat MyApp:D *:S` (MyAppタグのデバッグログ以上を表示) |
| 複数のタグでフィルタリング | | 複数のフィルタ条件を指定できます。 |
| 正規表現でフィルタリング (grep) | | OSのコマンドとパイプして、ログ内容を正規表現で絞り込みます。 |
| 特定のPIDのログのみ表示 | | 指定したプロセスIDのログのみを表示します。PIDは `adb shell ps` などで確認できます。 |
| ログバッファサイズの表示 | | main, system, radio, events などのログバッファのサイズを表示します。 |
| ログバッファサイズの変更 (要 Root) | | ログバッファのサイズを変更します。単位は K (キロバイト) または M (メガバイト)。例: `adb logcat -G 16M` |
| 指定したバッファのみ表示 | | ` |
ネットワーク関連
TCP/IP接続の設定やポートフォワーディングなど、ネットワーク関連の操作を行います。
| 目的 | コマンド | 説明 |
|---|---|---|
| Wi-Fi経由でのADB接続を有効化 | | 指定したポート(通常は5555)でTCP/IP接続を待ち受けます。一度USB接続が必要です。例: `adb tcpip 5555` |
| IPアドレス指定でデバイスに接続 | | 指定したIPアドレスとポートでデバイスに接続します。ポートは `adb tcpip` で指定したもの(デフォルト5555)。例: `adb connect 192.168.1.100:5555` |
| デバイスとの接続を切断 | | 全てのTCP/IP接続を切断、または指定した接続を切断します。 |
| ポートフォワーディング設定 (PC → デバイス) | | PCの指定ポートへのアクセスを、デバイスの指定ポートへ転送します。例: `adb forward tcp:8080 tcp:80` (PCの8080をデバイスの80へ) |
| ポートフォワーディング設定 (デバイス → PC) (Reverse) | | デバイスの指定ポートへのアクセスを、PCの指定ポートへ転送します。例: `adb reverse tcp:8000 tcp:3000` (デバイスの8000をPCの3000へ) |
| 設定されているポートフォワーディング一覧表示 | | 現在設定されている forward / reverse ルールを表示します。 |
| 全てのポートフォワーディング設定削除 | | 設定されている全ての forward / reverse ルールを削除します。 |
| 特定のポートフォワーディング設定削除 | | 指定したポートに対応する forward / reverse ルールを削除します。 |
その他の便利なコマンド
バグレポート作成、 sideload など、その他の便利なADBコマンドです。
| 目的 | コマンド | 説明 |
|---|---|---|
| バグレポートの作成 (PCにzip保存) | | デバイスの詳細な状態(ログ、dumpsys情報など)を含むバグレポートzipファイルを生成し、PCに保存します。パス省略時はカレントディレクトリに保存されます。 |
| OTAアップデートファイルなどの適用 (Sideload) | | リカバリーモードで起動したデバイスに対し、PCからアップデートファイルなどを転送して適用します。 |
| root権限でコマンド実行 (要 Root化) | | ADB接続をroot権限で再起動します。以降 `adb shell` などがrootで実行されます(対応するROM/環境が必要)。`su -c` でも一時的にrootコマンドを実行できます。 |
| ユーザー権限に戻す | | ADB接続を通常のユーザー権限に戻します。 |
| 読み取り専用ファイルシステムを書き込み可能で再マウント (要 Root) | | `/system` などの通常は読み取り専用のパーティションを書き込み可能にします。システムファイルの変更などに使います(注意が必要)。 |
| ヘルプ表示 | | ADBコマンドの基本的な使い方や利用可能なオプションを表示します。 |