連載
» 2012年06月20日 11時15分 公開

Android技術者認定試験「ACE」ドリル(13):Androidのデバッグ機能 (2/2)

[奥 崇(elan),@IT MONOist]
前のページへ 1|2       

解答

演習1:答え(3)

 Androidのエミュレータおよびavd(Android Virtual Device)の機能を問う問題です。

 まずは、エミュレータとavdの違いを明確にしましょう。エミュレータとは、Android SDKに同梱されているAndroidの仮想端末を提供するツールです。注意点としては、仮想端末そのものではなく、“仮想端末を提供するツール”だということです。いうなれば、仮想端末本体をラップして、ユーザーに操作環境を提供する“器”になります。そのため、Windows OS環境の場合、エミュレータはEXE形式の実行ファイルとして提供されます。

 その他の特徴としては、コンソール機能を有している点が挙げられます。例えば、開発機からTelnetした上で、バッテリーやネットワークの状態をコントロールしたり、電話機能をシミュレートしたりすることができます。

 そして、avdとは“Android Virtual Device”の略で、仮想端末そのものになります。avdは初めから用意されていません。そのため、各自でADT(Android Development Tools)を用いて作成するか、androidコマンド(続く演習2の解説と表1を参照のこと)で作成します。作成以外の削除などの管理についても、ADTもしくはandroidコマンドで行います。また、avdは複数作成することも可能です。実際に、Androidアプリケーションの開発を行っている方は、Androidのさまざまなバージョンや解像度に合わせて複数用いているのではないでしょうか。

 というわけで、(3)の「avdはAndroid SDKに同梱されている」は誤りであり、ここでの正解となります。

演習2:答え(4)

 DDMS(Dalvik Debug Monitor Service)に関する問題です。DDMSとは、その名の通り、デバッグを行う上での「モニター」ツールです。具体的に何をモニターするのかというと、Eclipseと端末/エミュレータの間の仲介役となって、各種情報の取得や端末/エミュレータの操作などを行うことができます。

 先に正解を申しますと、今回の選択肢では(1)(2)(3)がDDMSの機能となります。よって、(4)の「エミュレータを作成できる」が誤りで、ここでの正解となります。

 他にもDDMSが持つ代表的な機能としては、Virtual Machineの一般的情報(バージョンなど)の取得、Virtual Machineのメモリ割り当て状況の取得、疑似的な電話受信・SMS受信・位置情報の送信、ファイルエクスプローラなどの機能があります。

 なお、エミュレータの作成はEclipseのウィザードを用いるか、ターミナルから「android」コマンドを用いて作成します(表1)。

コマンド 機能概要
android list avd AVDの一覧を表示
android create avd AVDの作成
android delete avd AVDの削除
android move avd AVDの移動
andoird update avds システムイメージのパスの再計算(再設定)
表1 主なandroidコマンド

 ACEでは、androidコマンドに関しても出題されることがあります。余力がある方は、オプション指定に関しても押さえておくといいでしょう。オプション指定の詳細については、下記のWebサイトでご確認ください。

オプション指定の詳細:
Managing AVDs from the Command Line | Android Developers

演習3:答え(2)

 演習3は、adbの機能を問う問題です。adbとは“Android Debug Bridge”の略となります。その名の通り、端末/エミュレータと開発機との「橋渡し」となって、デバッグする上で必要なさまざまな機能を提供します。具体的には、端末/エミュレータへの接続、シェルコマンドの発行、ファイルの転送、アプリケーションのインストール/アンインストールなどが行えます。

 adbの特徴としては、「adb client」「adb server」「adb daemon」が存在します。adb clientは、ターミナル上から利用したり、ADTが内部で隠蔽(いんぺい)して利用しています。そのため、複数同時に起動することがあります。

 adb serverは、adb clientとadb daemon間の通信を管理します。これも開発機上で動作しますが、adb clientとは異なり1つだけしか動作しません。

 最後にadb daemonですが、これは各端末/エミュレータで動作し、実際に制御を行っているプログラムになります。

 上記より、(1)の「adbはclient、serverおよびdaemonが存在する」は正しく、(2)の「adb serverは複数存在し得る」が誤りとなり、ここでの正解となります。

 ちなみに、(3)の「adbはAndroid SDKに同梱されている」は正しいです。また、(4)の「adbは端末とWi-Fi経由でも利用できる」は、adb serverとadb daemonがTCPを用いて通信し合える環境であれば、Wi-Fiなどのネットワーク越しで利用することが可能です。

 adbは、Android技術スキル標準「ATSSAndroid Technical Skill Standard)」の中で、“重要度3”で設定されています。この機会に、さらに突っ込んで学習しておきましょう。

 adbは通常、ターミナルから使用します。つまり、コマンドを入力することにより、動作させることができます。初めから全てのコマンドを覚えるのは難しいと思いますので、以下に紹介する“よく使うコマンド”をまずは覚えてしまいましょう(表2)。

コマンド 機能概要
adb devices 認識しているデバイスの一覧を表示
adb kill-server adbサーバの停止
adb start-server adbサーバの起動
adb shell デバイスでのシェル操作(対話モード)
adb logcat logcat(ログ)の表示
adb install <apkのパス> アプリケーションのインストール
adb uninstall <パッケージ名> アプリケーションのアンインストール
表2 主なadbコマンド

 「コマンドは苦手だなぁ〜」と思うかもしれませんが、ACE対策のためだけでなく、実際のAndroidアプリケーションの開発においても非常に重要な項目ですので、ぜひとも手を動かしながら確認してみてください!



 以上でAndroidの「デバッグ機能」の単元は終了です。これで、全ての単元をカバーしたことになります。長い間、お疲れさまでした。

 ACEの「ベーシック」な部分を取り上げてきた本連載ですが、これでACE合格へ向けた下準備ができたのではないでしょうか? 本連載で得られたナレッジ、スキルをベースとし、さらに上を目指して頑張ってください。

 さて、次回は“最終回”として、「総仕上げ演習問題」を行います! ご期待ください!! (次回に続く)

ACEアプリベーシック試験対応イーラーニング(サンプルIDプレゼント中)


Androidコーナー

Androidコーナー
「Android(アンドロイド)」の組み込み機器への適用からアプリ開発、レポート、ニュースなどさまざまな技術情報・最新動向をお届けする!!

>>コーナーTOPはこちらから


前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.