Android ADB(Android Debug Bridge) 【Android TIPS】

この記事は2013年5月27日に書かれたものです。内容が古い可能性がありますのでご注意ください。


13
ADB (Android Debug Bridge)
ADB (Android Debug Bridge)
このCHAPTERでは、Android Debug Bridge(略してADB)について紹介します。ADBはAndroid SDKの中に含まれる開発ツールのうちの1つで、開発PCとAndroidデバイスの橋渡しをするというとても大事な役割を担っているツールです。開発中に直接目に見えない裏方で活躍しているツールです。
ADB概要
Android Debug Bridge(略してADB)はAndroid SDKの「platform-tools」に含まれる、コマンドラインで使用するツールです。
ファイル名は「adb.exe」です。Windowsのコマンドプロンプトで使用する場合には、このファイルへのパスを環境変数PATHに設定しておくことを推奨します。
(本書のインストール手順に従ってインストールされた方は、設定済みです。)

このツールを用いると現在利用可能なAndroid実機・エミュレータの列挙、Androidへのシェルコマンド発行、Androidデバイスへのファイル転送、Androidデバイスからのファイルダウンロード、アプリケーションのインストールおよびダウンロードなどが可能になります。
実は、Eclipseからアプリケーションをコンパイル・実行したときには、ADBが裏側で様々な処理を行ってくれています。


ADBは3つの機能から構成されています。


● ADB Client

開発PC上のADTプラグインやターミナル(コマンドプロンプト)

● ADB Server

開発PC上でバックグラウンドプロセスとして動作し、ClientとDaemonを仲介する

● ADB Daemon

Androidが動いているエミュレータや実機



たとえば、Eclipse上からアプリケーションを実行すると、EclipseおよびADTによってAPKファイルが作成され、ADBを通じてAndroid端末にインストール・実行されます。
ADB Clientからインストールコマンドが発行され、ADB Serverを通じてADB Daemonにインストール命令が伝わるというイメージです。

ADBコマンド
ADB Serverは開発PC上で起動しているプログラムです。このプログラムはADB DaemonすなわちAndroid実機やエミュレータが開発PCに接続されると自動的に起動します。
ただし、様々な要因によりADB Serverが応答しなくなる場合があり、このような場合にはADB Serverを再起動すると問題が解消することがあります。

ADB Serverを停止するには以下のコマンドを使用します。

C:>adb kill-server

C:>

ADB Serverを開始するには以下のコマンドを使用します。

C:>adb start-server
* daemon not running. starting it now on port 5037 *
* daemon started successfully *

C:>

また、ADB Serverに接続中のADB Daemonの一覧を確認するには、以下のコマンドを使用します。

C:>adb devices
List of devices attached
0123456789012345  device
emulator-5554     device

C:>

エミュレータが起動している場合は「emulator-****」という表示があるはずです。
上記例では、Android実機を1台、エミュレータを1台認識していることがわかります。


他にも数多くのADBコマンドがありますが、その中の一部を紹介します。

コマンド 概要
adb shell Androidデバイスのシェルに接続する。
adb help adbコマンドの使い方を表示する。
adb logcat Androidデバイスのログを表示する。
adb install アプリケーションをインストールする。
adb uninstall アプリケーションをアンインストールする。
adb push ローカルにあるファイルをAndroidデバイスに転送する。
adb pull Androidデバイスにあるファイルをローカルに転送する。



たとえば、アンインストールはADBコマンドを知らなくとも、Androidデバイス上から操作すればいいだけですが、アンインストール操作を行うには5回以上のタップ操作が必要になります。
しかし、ADBコマンドを知っていればコマンド1回で行うことができます。アプリケーションの試験で何度も行うことになるオペレーションですので、少しでも効率化しておきたいところです。

ファイルの転送や、ファイルのダウンロードも「DDMSパースペクティブ」から行うことはできますが、何度も同じファイルを操作する場合は、ADBコマンドから行った方が効率的です。

 

これらのコマンドはADB Serverに接続している特定のAndroidデバイスに対して実行するコマンドです。
ADB Serverに複数のADB Clientが接続されている場合は、どのClientに対してコマンドを実行するか指定しなくてはいけません。
そのために用いるのがオプションです。

オプション 概要
-d Android実機が1台繋がっている場合に、そのAndroid実機を指定する
-e エミュレータが1つだけ起動している場合に、そのエミュレータを指定する
-s エミュレータを2つ以上起動していたり、実機端末が2台以上繋がっている場合にシリアル番号を指定する。
シリアル番号は、「adb devices」コマンドもしくはDDMSパースペクティブで確認することが可能。



ADB ServiceがAndroid実機とエミュレータを認識している場合に、Android実機に「adb install」コマンドを使って「HelloWorld.apk」をインストールする例です。「-d」オプションの付ける位置に注意してください。

C:>adb devices
List of devices attached
0123456789012345  device
emulator-5554     device

C:>adb -d install HelloWorld.apk
83 KB/s (86163 bytes in 1.010s)
        pkg: /data/local/tmp/HelloWorld.apk
Success

C:>

「-d」オプションを指定しないと、ADBコマンドは2つのうちどちらにインストールすればよいかわからず、エラーとなってしまいます。

  • このエントリーをはてなブックマークに追加

PAGE TOP