ADBは、“Android Debug Bridge”の略で、Androidをデバッグするためのツールです。普通にスマートフォンを使う分には、まず使用することはないと思いますが、Android開発をする際には大変重宝する機能です。
ADBの代表的な機能としては以下が挙げられます。
No. | 機能 |
---|---|
1 | アプリケーションのインストール/アンインストール機能 |
2 | ログ出力機能 |
3 | データを出し入れする機能 |
4 | シェル機能 |
表6 ADBの代表的な機能 |
今回は、4番目の「シェル機能」を紹介します。「シェル」とは、UNIX系のOSに標準で組み込まれている機能であり、AndroidもベースはLinuxですので、当然シェルが組み込まれています。
Linuxが動作するには、「カーネル」と呼ばれるOS本体が動作する必要がありますが、ユーザーがそのカーネルに対して命令を出すためには、「システムコール」と呼ばれるC言語のインタフェースを使う必要があります。このインタフェースを使うためには、C言語プログラムを作成して、コンパイルして……と、非常に面倒な作業が発生しますが、Linuxは、ユーザーにこのような面倒なことをさせないように、ユーザーとカーネルとの間を仲介してくれる“シェル”を用意してくれています。ユーザーはシェルに対して、「こんなことして!」とキーボードで打ち込むだけで、カーネルに対してそれに対応する一連の命令を自動で発行してくれるのです。ありがたいですね。
実は、さきほどシリアル接続して組み込みボードにアクセスしたときに使っていた機能がまさにそのシェルだったのです(気が付きましたか?)。
先ほどはシリアル接続していましたが、Androidスマートフォンにはシリアルインタフェースなどありません。そのため、USBを使ってシェルを含む便利な機能を利用できるよう提供されているのが、ADBなのです。
それでは、PC側でADBを使えるようにするために、「Android SDK」をインストールしましょう。手順は以下の通りです。
まず、AndroidのDevelopersサイトより、Linux用のAndroid SDK「android-sdk_r11-linux_x86.tgz」をダウンロードします。
Webサイト | http://developer.android.com/sdk/ |
---|---|
ダウンロードファイル | android-sdk_r11-linux_x86.tgz |
ファイルサイズ | 約27Mバイト |
表7 Linux用Android SDK |
次に、ダウンロードした「android-sdk_r11-linux_x86.tgz」を以下のコマンドで解凍します。
tar zxf android-sdk_r11-linux_x86.tgz
本連載では、「~/android」以下で作業し、SDKのディレクトリを「~/android/sdk」に名前を変えて配置しました(図17)。
解凍した直後のSDKにはADBが含まれていないため、最初にパッケージを一新しておきます。「sdk/tools」内の「android」というコマンドを実行しましょう(図18)。
すると、「Android SDK and AVD Manager」が起動します(図19)ので、[Installed packages]を選択後、[Update All...]を実行します(注12)。
この際、インストールするパッケージを選択できますが、デフォルトの設定でADBがインストールされるため、変更せずに[Install]を実行します(図20)。
パッケージが多いため、それなりに時間がかかります。完了したらマネジャーを終了します。
「sdk」以下のディレクトリが増えているはずです。この内、「platform-tools」に「adb」が含まれています(図21)。
最後に、「adb」やその他のAndroid開発用のツールがどこでも実行できるように、SDKにパスを設定します。Android SDKを使うには、以下の場所にパスを通すことをオススメします。
本稿では、「~/.bashrc」の最後に以下の記述を追加してパスを設定しました(図22)。
それでは、早速ADBを使ってみましょう。まずは、PCに接続されているAndroid端末を知る「adb devices」からはじめます(図23)(注13)。
あれ? 表示がおかしいですね。どうやら、root権限でない「adb」のサーバデーモンでは正常に動作しない場合があるようです。そのため、adbサーバをあらかじめroot権限で起動しておくか、既に起動している場合はいったん終了して再起動する必要があります。root権限を付けて再起動した様子が図24です。「sudo」を使用する際、パス設定が引き継がれるよう「alias」を用いています。
Androidデバイスをちゃんと認識してくれましたね!
Copyright © ITmedia, Inc. All Rights Reserved.