アプリケーションの開発スタイル
では,Android用アプリケーションの開発はどんな形態になるのか,実践的に見ていこう。
Androidのアプリケーションは,Linux,WindowsあるいはMacOS上で開発できる。Eclipseと,携帯電話のエミュレータを含む開発環境の「AndroidSDK」を使用する。
Androidアプリケーションの開発・実行環境は,3つに分類される(図2の赤・緑・青)。
1つめは,パソコン上で動作するAndroidの開発ツール。具体的には,一般的なJavaの開発環境であるJDKやEclipseと組み合わせて利用するAndroid専用の開発ツールである「ADT(Android Development Tools)」が提供されている。
ADTのツールをEclipseから利用するプラグインである「ADTPlugin」も備える。ADTの中には,携帯端末上の開発用モジュールと通信するための「adb(Android Debug Bridge)」やJava仮想マシンのDalvikと通信する「ddms(Dalvik Debug Monitor Service)」,携帯電話のエミュレータなども含まれている。
2つめは,Linux環境の部分。Linuxには,ARMアークテクチャのCPU上で動作するカーネルを用いている。このカーネルはARMエミュレータ上で動く。仮想化ソフトの「QEMU」を使用して,パソコン上にARMの環境を作る。ここでのポイントは,QEMU上で動作するLinuxカーネルと実際の携帯端末のCPUで動作するLinuxカーネルは,同じものということだ。
すなわち,エミュレータ上で動くライブラリやDalvikのコードも,携帯電話の実機で動作するコードと同じ。実機をつなげなくても,ほぼエミュレータだけで開発できる。
3つめは,実機でのアプリケーション実行環境だ。アプリケーションは,Java言語で開発する。しかし開発言語は,正式なJava Standard Edition(J2SE)やMicro Edition(J2ME)ではなく,Android独自のライブラリ構成と,バイトコードの仕様になっている。これは,メモリーやCPU能力の制限を考慮し,独自に最適化した結果といわれている。
本記事ではAndroidのエミュレータを動かしてみる。そのためにはAndriodのソース・コードが必要となる。次回以降でソース・コードをビルドする方法を見ていく。
日本のコミュニティとしては,Googleが認定した開発者の「Google API Expert(Android)」に選ばれた安生 真氏により,「Android SDK Japan」のGoogle Groupが開設されている。ここでは日本語で SDKに関する質問をやり取りできる。日本語が堪能なGoogleの“デベロッパーアドボケイド”のJason Chen氏も参加している。
また,「日本Androidの会」というコミュニティも2008年9月に発足した。月に1回程度,Androidのイベントを開催したり,各地のオープンソース・カンファレンスや展示会でAndroidの実機の展示や講演を行うなど,Androidの普及活動を展開している。