adb【Android Debug Bridge】
概要

開発環境側で動作するadbクライアントとadbサーバ、Android端末側で動作するデーモン「adbd」の3要素で構成される。利用者がadbコマンドを実行するとクライアントがサーバを介して端末側のadbdと通信し、指定した処理を実行する仕組みである。
接続先には、USB接続した実機のほか、パソコン上で動かすAndroidエミュレータも利用できる。Android 11以降は開発者向けオプションの「ワイヤレスデバッグ」により、Wi-Fi接続も可能になった。USB接続の場合は端末側でUSBデバッグを有効にし、初回接続時にパソコンからのデバッグを許可する操作が必要になる。複数の端末を同時に接続している場合は、「-s」オプションで対象の端末をその都度指定する。
操作はコマンドラインから「adb オプション コマンド パラメータ」という書式で行う。コマンドには、接続済み端末の一覧を表示する「devices」、端末に接続する「connect」、APKファイルをインストールする「install」、パソコンから端末へファイルを送る「push」、端末からパソコンへファイルを取り出す「pull」などがある。ログの取得やプロセス状態の確認と組み合わせて使われることも多い。
「shell」コマンドを使うと、端末上のUnixシェルを呼び出して対話的に操作することもできる。「adb shell」でシェルが起動し対話モードでコマンドを実行できるほか、「adb shell OSコマンド」という書式であれば、シェルを起動せずに端末側で実行したいコマンドを直接指定することも可能である。このリモートシェルからは、アクティビティの起動などを管理する「am」(Activity Manager)やパッケージ管理を行う「pm」(Package Manager)を操作でき、アプリの起動や停止、パッケージ情報の確認、権限設定といった処理をパソコン側から遠隔で実行できる。
本来はアプリ開発者やテスト担当者がデバッグ作業を行うためのツールだが、端末のカスタマイズや障害調査、復旧作業などにも利用される。Android Studioを利用してアプリを実行・デバッグする際も、内部ではadbが使われている。