2009年7月、日本でもAndroidを搭載した携帯電話(NTTドコモの「HT-03A」)が発売されました。もうだいぶ前のように感じられるかもしれませんが、今からたった1年2カ月ほど前のことです。2010年4月の「Xperia」の発売以降、Andoroidを搭載した端末の発売が相次ぎ、Androidに対する関心は一層高まっています。本特集では、Androidプログラミングの基本を紹介します。日本でのAndroid端末発売当時の記事なので古い個所もありますが、Androidアプリ開発の概要を理解するのに役立ちます。
 今回は開発環境の整備について説明します。
(記事は原則として執筆時の情報に基づいており,現在では異なる場合があります)

 Androidは、米Googleが作った携帯電話用のOS(Operating System)です。携帯電話用のOSと言えば、Symbian OSやiTRON、RTOS、Linuxなどがあり、スマートフォン用としてはWindows Mobile、iPhone OS(iOS4)などがあります。Androidはスマートフォン用に分類できます。

 Androidに標準搭載されるアプリケーションには、Webkit*1ベースのWebブラウザ、Google検索、YouTube、自動受信対応のGmail、Googleマップとストリートビュー、Googleトーク、Googleカレンダーなどがあります。これら以外のアプリケーションは、Androidマーケット*2からダウンロードして追加できます。

 ユーザー・インタフェースはタッチ操作が中心で、文字入力にはソフトウエア・キーボードがサポートされています*3。メディア・ファイルは、MPEG4、H.264、MP3、AAC、AMR、JPEG、PNG、GIFなどがサポートされており、動画・音楽の再生や画像の閲覧はもちろんのこと、撮影した動画をその場でYouTubeにアップロードすることも可能です。またGSM、Bluetooth、Wi-Fi、デジタルカメラ、GPS、地磁気センサー、加速度センサーなど、様々なハードウエアに対応しています。

 Androidの開発は、Googleが中心となって設立したオープン・ハンドセット・アライアンス(Open Handset Alliance、以下OHA)で行われています。OHAの参加企業には、日本からはKDDI、NTTドコモ、ソフトバンクモバイル、東芝、オムロンが参加しています。Androidのソースコードは、Apache License 2.0というオープンソースのライセンスで公開されています。

 さらに、最近では携帯電話以外にもAndroidが採用されています。Androidはオープンソース・ソフトウエアとして公開されているので、今後も様々な搭載端末が発表されることでしょう。

Androidのシステム構成

 Androidは、その中核となるソフトウエアとして、Linuxカーネル2.6を採用しています。このLinuxカーネル上に、アプリケーションの実行環境である独自のDalvik仮想マシン(Dalvik VM:ダルビック バーチャルマシン)を搭載しています。すべてのアプリケーションはDalvik VMを介して実行されます。ただし、ネイティブ・コードも動作するように、専用ライブラリも搭載しています。

 このDalvik VMこそが、Androidの一番の特徴といってもよいでしょう。携帯電話向けのアプリケーションは一般に、リソースが限られていることから、CやC++などのネイティブ・コードで書かれることが多いものです。これに対してAndroid上で動作するアプリケーションは、原則としてすべてこのDalvik VM上で動作します*4。ハードウエア依存のコードやパフォーマンスが重要視されるコーデックなどの処理は、ネイティブ・コードのライブラリとして提供されているので、Dalvik VMから利用できます。

 また、プリインストールされているアプリケーションもすべてDalvik VM上で動作し、プリインストール・アプリも追加アプリもすべて平等に扱われます。その気になれば、携帯電話に搭載するすべての機能を、独自のアプリケーションに置き換えることが可能です。

 Dalvik VMは、コンパクトで高速に動作するように設計されています。処理能力の低い端末やメモリー搭載量が少ない端末でも快適に動作します。開発言語としてはJavaを利用しますが、携帯電話用のJava実行環境であるJava ME(Java Platform Micro Edition)には準拠しておらず、独自のAPIセットになります。

 動作するバイナリはJavaバイトコード(.classファイル)ではなく、独自のDalvikバイトコード(.dexファイル)となります。Dalvik VMはレジスタ・マシン*5のため、スタック・マシンのJava VMよりもメモリー・アクセスが抑えられ、コードのサイズもコンパクトになります。これにより少ないリソースでも快適に動作します。

この先は会員の登録が必要です。有料会員(月額プラン)は初月無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら