Google Android用携帯アプリ作成のための基礎知識小山博史のJavaを楽しむ(9)(4/5 ページ)

» 2007年12月03日 00時00分 公開
[小山博史,ガリレオ]

Androidアプリ開発に便利なツール一覧

 さて、簡単なアプリケーションを作るには、これだけでもいいのですが、本格的な開発をしようと考えたら、SDKについて、もう少し理解しておく必要があります。

ツール名/コマンド 概要
ddms Eclipseを使わないデバッガ
appt 圧縮ファイルの中身を表示・作成・更新
aidl リモート・インターフェイスを定義
mksdcard 仮想SDカードを作成
dx .classファイルをAndroid実行用バイナリコードに変換
activityCreator Eclipseを使わずにアプリのひな型を自動生成
adb デバイスやエミュレータの状態を管理
adb devices 実行中のエミュレータの一覧を表示
adb shell エミュレータのデーモンへ接続してシェルを起動
dalvikvm AndroidのJava実行環境の情報が分かる(adb shell内で実行)
netcfg ネットワークの状態を確認(adb shell内で実行)
sqlite3 Android付属のDBをSQLで操作(adb shell内で実行)
adb kill-server adbのデーモンを停止
表 SDK付属のAndroidアプリ開発に便利なツール一覧(インデックスになっています)

Eclipseを使わないデバッガ、ddms

 Eclipseを使っていると、デバッグも普通のJavaプログラムと同じような感じで行うことができますが、そうでない場合は、「ddms(Dalvik Debug Monitor Service)」が役に立ちます。

 エミュレータの画面キャプチャを取る機能などもあるので、Eclipseを使っている開発者も知っておいて損はないでしょう。実行した画面イメージは図14のとおりです。先に「ddms」を起動しておいてから、emulatorコマンドでエミュレータを起動しました。

図14 ddmsの実行例(画像をクリックすると拡大します) 図14 ddmsの実行例(画像をクリックすると拡大します)

 起動したエミュレータの情報が左上の領域に表示されていて、エミュレータで動作しているアプリケーションの情報がその下の領域に表示されていることが分かります。その情報から、アプリケーションのデバッグポートがそれぞれに用意されていることが分かります。

 Logの領域には、ログ情報が表示されています。

圧縮ファイルの中身を表示・作成・更新するaapt

 「aapt(Android Asset Packaging Tool)」を使うと、Zip互換のアーカイブファイルzipjarapk)の中身の表示や作成、更新ができます。

 また、リソースをバイナリへコンパイルすることもできます。

リモート・インターフェイスを定義するaidl

 リモートから接続して使うようなアプリケーションを作成するに当たっては、「aidl」を使ってリモート・インターフェイスを定義できます。

 「aidl」は、IDL(Interface description language)の一種です。各アプリケーションはそれぞれのプロセス上で動作しますから、ほかのプロセス上で動作するアプリケーションと連携させたい場合には、プロセス間通信などが必要で、単純には実現できません。aidlツールは、この実現を支援するツールです。

仮想SDカードを作成するmksdcard

 「mksdcard」は、エミュレータにロード可能なFAT32SDカード仮想ディスクイメージを作成するためのツールです。

.classファイルをAndroid実行用バイナリコードに変換するdx

 「dx」は.classファイルからAndroid用バイトコードであるDalvik VM(Androidプラットフォーム用のカスタムVM)用の実行ファイル(.dex)を生成するために使います。ディレクトリを対象とすることもできます。

Eclipseを使わずにアプリのひな型を自動生成するactivityCreator

 Windows用には、「activityCreator.bat」というバッチプログラムが、LinuxとMac OSX用には「activityCreator.py」というPythonスクリプトが用意されています。これらを使うと、Eclipse+ADTプラグインを使わなくても、Androidアプリケーションのひな型を生成できます。

 コマンドプロンプトを表示して、カレントディレクトリをC:\application\android_sdk\toolsとします。例えば、次のようにコマンドを入力すると、Eclipseの新規プロジェクト作成のウィザードで作成するのと同様にSampleAndroid1ディレクトリが出来上がります。

C:\application\android_sdk\tools> activityCreator.bat --out SampleAndroid1 sample.app.SampleAndroid1

 以上で分かるように、SDKには有用なツールが含まれています。これらの情報へは、基本的に、SDKに含まれている「documentation.htmlファイル」からたどることができます。

 最後にもう1つだけ、役立つツールを紹介します。デバイスやエミュレータの状態を管理するadbです。

デバイスやエミュレータの状態を管理するadbツール

 「adb(Android Debug Bridge)」を使うと、デバイスやエミュレータの状態を管理できます。これにより、Androidをデバッグしたり、エミュレータの設定を変更したりすることができるわけです。このコマンドを開始すると、TCPポート5037を使用するデーモンが起動します。

実行中のエミュレータの一覧を表示するadb devices

 実行中のエミュレータの一覧を表示するには、コマンドプロンプトで「adb devices」と入力します。実行結果から、1つのエミュレータが動作していて、TCPの5555番ポート経由でtelnet接続できるということが分かります。

C:\application\android_sdk\tools> adb devices
List of devices attached
1 emulator-tcp-5555 device 0

エミュレータへ接続してシェルを起動するadb shell

 通常は「adb shell」を使ってエミュレータへ接続します。接続してみると分かりますが、中身はLinuxなので、Linuxを使ったことがあればいろいろと調べることができます。

C:\application\android_sdk\tools> adb shell
#

 adb shell上では、いろいろなコマンドを使うことができます。ちょっと紹介しておきましょう。

AndroidのJava実行環境の情報が分かるdalvikvm

 adbのシェルを起動して、「dalvikvm -showversion」というコマンドを使うことにより、Dalvik VMのバージョンを確認できます。Dalvik VMはまだ0.2.0ということでバージョンはまだまだ低いです。

# dalvikvm -showversion
/system/bin/dalvikvm -showversion
DalvikVM version 0.2.0
Copyright (C) 2007 Google, Inc.
Blah blah blah LICENSE blah blah.
Dalvik VM init failed (check log file)

ネットワークの状態を確認するnetcfg

 ネットワークの状態を確認するには、netcfgコマンドを使います。なお、大抵のコマンドはsystem/binにありますから、どんなコマンドがあるのか、lsなどで調べてみるといいでしょう。

# netcfg
netcfg
gre0 DOWN 0.0.0.0 0.0.0.0 0x00000080
tunl0 DOWN 0.0.0.0 0.0.0.0 0x00000080
eth0 UP 10.0.2.15 255.255.255.0 0x00001043
lo UP 127.0.0.1 255.0.0.0 0x00000049

Android付属のDBをSQLで操作するsqlite3

 Android SDKには、DBソフトウェアのSQLite 3.5.0が付いています。adbを使って、エミュレータに接続すると、sqlite3コマンドを使って直接DBを操作できます。

 アプリケーションが使用するDBのファイルは、「/data/data/パッケージ名/databases/」にあります。SQLのCREATE文やSELECT文といった命令だけでなく、「.dump」コマンドや「.schema」コマンドも使用できます。

 終了するには、「.exit」コマンドを使います。DBを使うアプリケーションを作成したときには、直接DBを操作して確認したいはずです。そんなときに利用しましょう。

 例では、items DB(items.db)を用意し、そこへitemsテーブルを作成して、レコードの挿入、選択をしています。

C:\application\android_sdk\tools>adb shell
# mkdir /data/data/sample.app/databases
# sqlite3 /data/data/sample.app/databases/items.db
sqlite3 /data/data/sample.app/databases/items.db
SQLite version 3.5.0
Enter ".help" for instructions
sqlite> create table items (id integer primary key autoincrement, s text not nul
);
create table items (id integer primary key autoincrement, s text not null);
sqlite> insert into items (s) values ('hello');
insert into items (s) values ('hello');
sqlite> select * from items;
select * from items;
1|hello
sqlite>.exit
.exit
# exit

adbのデーモンを停止するには?

 adbのデーモンを停止するためには、別のコマンドプロンプト画面を表示して、「adb kill-server」というコマンドを使います。

 最後に次ページでは、Androidのパッケージを覗いてみました。実にさまざまな技術が使われています。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。