[Android] adb:adbコンポーネントを理解する

Android Debug Bridge(adb)は、Androidの実機やエミュレータとやりとりするためのコマンドラインツールです。ここでは、adbコマンドについての概要について説明してきます。
広 告
目次
前提条件
- なし
動作確認端末
- なし
1. adbコンポーネントの種類
adbコマンドは以下の3つのコンポーネントを含んだ、サーバ・クライアント型のプログラムです。
- adbクライアント
- adbクライントはPC上で動作します。adbコマンドを実行すると、シェルを通してクライアントを呼び出すことができます。ADTやDDMSのような他のAndroidツールもまたadbクライアントを呼び出します。
- adbサーバ
- adbサーバはPCのバックグラウンドプロセスとして動作します。Adbサーバはadbクライアントと実機やエミュレータ上で動作するadbデーモンとの接続管理を行います。
- adbデーモン
- adbデーモンは、実機やエミュレータ上でバックグランドとして動作するデーモンプロセスです。
2. adb起動の流れ
adbクライントが起動した時、まずクライントはadbサーバが起動しているかを確認します。もし起動していなければ、adbサーバを起動します。
Adbサーバは実行中の実機、エミュレータに対して接続設定を行います。adbサーバが起動した時、adbサーバは、ローカルのTCPポート5037に対してバインド(結合)し、adbクライアントから送られてくるコマンドを受けます。
実機やエミュレータに対して割り振られるポート番号は、5555〜5585の間の奇数番号になります。adbサーバがadbデーモンを認識したバア、該当するポートに対して接続設定を行います。
それぞれの実機やエミュレータは、連番のペアとなるポートを取得します。偶数番号のポートはコンソール、奇数番号のポートはadbデーモンになります。
adbサーバは、すべての実機、エミュレータと接続を確立した後、adbコマンドを使ってアクセスできるようになります。Adbサーバは、複数のadbクライアントを管理し、どのクライアントからのコマンドも処理することができます。
3. adbコマンドツールの格納場所
adbコマンドツール以下のフォルダに格納されています。<sdk>
はAndroid SDKをインストールしたフォルダパスを表しています。
adbコマンドラインツールの格納フォルダ
/platform-tools/
4. adbデバッグを有効にする
adbコマンドを実機で使用するためには、PCと実機をUSBケーブルで接続し、実機をUSBデバッグモードにする必要があります。詳しい手順についてはこちらを参照してください。
5. adbコマンドの書式
adbコマンドは以下の書式で記述します。
adbコマンドの書式
adb [-d|-e|-s ]
実機もしくはエミュレータが1つのみ接続されている場合は、adbコマンドがデフォルトでその実機もしくはエミュレータに対して実行されます。もし複数の接続がある場合は、-d
、-e
、-s
、のオプションでターゲットを特定する必要があります。