図1●Android端末の基本機能。左上から時計回りに,起動時,GoogleMaps,YouTube,Gmail,ストリートビュー,検索の画面
[画像のクリックで拡大表示]

 この記事が公開される2009年7月10日,いよいよ日本初のAndroid搭載携帯電話端末「HT-03A」がNTTドコモから発売される。HT-03Aは台湾HTC社製で,Google検索,Googleマップ,Gmail,YouTubeといったGoogleの各種サービスが組み込まれている(図1)。

 「Android Market」(図2)では,好みのアプリケーションをダウンロードして自由にインストールできる。Android Marketには,世界中のデベロッパーが開発し登録したアプリケーションが公開されている。開発者にとっては,自分が開発したアプリを世界中のAndroid端末に向けて配信できるという,大変魅力的な仕組みである。

図2●Android Marketのトップページ
[画像のクリックで拡大表示]

 読者も気付いていると思うが,このあたりの仕組みは,iPhoneとiTunes App Storeの関係にそっくりである(iPhoneアプリの開発については連載記事「オール・イン・ワンiPhone開発」を参照)。iPhoneでは,日本企業や日本人が何万本ものヒット作を出して一躍有名になった。Android端末においても,同じ可能性が広がっているのである。

 さらにAndroidには,iPhoneにはない大きな魅力がある。Android Marketを使わずに非公式アプリを配信することもできるのである。これにより,キャリアや端末メーカーからの制約を気にすることなく,自由にソフトを作成,配信できる。企業内アプリや趣味のアプリを広めるのに,もってこいの環境ではないだろうか。

 詳しくは後に説明するが,Androidは様々な意味で,企業情報システムとの親和性が高いプラットフォームと言える。この連載では6回にわたり,Androidアプリの開発から公開手続きまでの実際を解説していく。第1回の今日はAndroid端末の基本機能やアプリケーション,開発環境や公開手続きなどを概観する。本稿が読者がAndroidアプリケーションの開発に一歩踏み出す際の足がかりになれば幸いである。

制約の少なさ,低コストが魅力

 Androidとは,米Googleが2007年11月に提供を開始した,モバイル端末向けOSである。AndroidのカーネルはLinuxであり,ライセンスには非常に自由度の高い「Apache 2.0 License」を採用しているので,アプリの開発や配布に際しライセンス料が発生することはまずない。

 端末開発コストを低減できることから,現在端末を供給しているHTCだけでなく,スウェーデンのSony Ericssonを始めとする複数のメーカーが,Android搭載端末の投入を予定している。

 また,「1地域1キャリア」の方針を掲げるiPhoneと異なり,Androidの場合は通信キャリアの参入に関する制限がない。そのため,日本では7月10日に端末を発表するNTTドコモを皮切りに,KDDI,ソフトバンクと発売ラッシュになることも十分予想される。

 さらに,Androidをネットブックに採用する動きも活発である。台湾ASUSTek Computer(ASUS)はEee PCへのAndroid搭載を試みているし,台湾AcerもAndroidを搭載したネットブックを2009年中に発売する見込みである。PCの分野にもAndroidは広がりそうな気配だ。

AndroidアプリはJavaで開発できる

 iPhoneの開発キットである「iPhone SDK」はMac OS Xでしか使えない。だが,Androidの開発環境である「Android SDK」はWindows,Mac OS X,Linuxのいずれでも使える。開発言語にしても,Objective Cという聞き慣れない言語を使うiPhoneに対して,Androidアプリの中心となる開発言語は広く普及しているJavaである。

 iPhoneではネイティブ・コードでアプリケーションを実行する。だがAndroidでは「Dalvik VM」と呼ばれる仮想マシンの上で,コンパイルされたコードが動く。Dalvik VMはAndroidのために設計・開発されたものであり,現時点ではJava SEからDalvikコードへの変換が可能である。

 そのほか,Android Scripting Environment(ASE)という仕組みも2009年6月に発表された。これはAndroid端末上のターミナルから,Pythonなどのスクリプト言語で作られたプログラムを動かせるようにするものである。今後,RubyやJavaScriptなどへの対応も予定されている。

iPhoneよりも自由度が高い

 ここで,開発者の立場からiPhoneとAndroidを比較してみよう。

 iPhoneはマルチタスク処理の制約があるため,バックグラウンドで動作するアプリの開発はできない。一方,Androidではバックグラウンドでアプリを動作させられるので,例えばスケジューラを起動させておいて,別のアプリの動作中にアラート・メッセージを表示させる,といった仕組みも作れる。

 冒頭にも少し触れたが,アプリケーションを配信するまでの手続きも大きく異なる。例えば「iTunes App Store」では,Appleの審査を通過したアプリだけが公開を許可されるが,このApp Storeの審査には,場合によっては1カ月以上の時間がかかるうえ,アプリの内容に関する細かなチェックがあるため,デベロッパーにとっては大きな負担である。

 Android MarketでもGoogleによる審査はあるが,比較的容易にアプリケーションを登録できる。審査内容は「通信サービスや端末に害を及ぼすこと」「ポルノ,暴力」「著作権侵害」といった禁止事項に抵触していないかどうかを確認するという必要最低限の内容であり,質の改良を求めるようなものではない。Googleはアプリ登録の間口を広くとり,アプリの品質については,公開後のユーザー評価によって保たれることを期待しているようだ。