図1 Androidのアーキテクチャ。Google社のサイトから
図1 Androidのアーキテクチャ。Google社のサイトから
[画像のクリックで拡大表示]

 米Google Inc.および携帯電話機向けプラットフォームの推進団体である米Open Handset Alliance(Tech-On!関連記事その1その2)は2007年11月13日,OSAが普及を進めるソフトウエア・プラットフォーム「Android」のソフトウエア開発キット(SDK)の早期版を公開した。OSAのサイトなどを経由してダウンロードできる(AndroidのWWWサイト)。Google社は,Windowsおよび OS X,Linuxのそれぞれで利用可能なAndroid SDKを公開している。統合開発環境はオープンソースの「Eclipse」を利用している。

公開したSDKは「早期版」であり,製品版ではない。同社サイトに掲載されたAndroidのアーキテクチャは図1のようになっている。バージョン2.6のLinuxカーネルの上に,Google社が開発したネイティブ・ライブラリ群である「Libraries」と,アプリケーション・ソフトウエアの実行環境である「Android Runtime」が位置する。これらはネイティブ環境で動作する。Librariesにはアプリケーション・ソフトウエアに埋め込んで利用できるWWWブラウザー・エンジンや,標準C言語ライブラリである「libc」,動画や静止画,音声などを処理するメディア・ライブラリ(米PacketVideo社の「OpenCORE」ベース),データベース管理システム「SQLite」などがある。

Androidのアプリケーション・ソフトウエア記述言語はJavaで,「Java言語のコア・ライブラリが提供する機能のほとんどを提供する」(Androidの説明書)。Androidのアプリケーション・ソフトウエアは「Dalvik Virtual Machine」と呼ぶ仮想マシンで動作する。Androidプロットフォームには電子メール・クライアントやSMS,カレンダー,地図情報,WWWブラウザーなどが含まれており,これらはDalvik VM上で動作する。このため,バイナリ・ファイルは通常のJavaプログラムとは異なり,独自の「Dalvik execution format(.dex)」を採用している。

アプリケーション・ソフトウエアの開発を容易にするため,AndroidではApplication Frameworkを提供している。このフレームワークに基づいてプログラムを記述することにより,開発の負荷を低減している。「Views」と呼ぶユーザー・インタフェース部分や,「Content Providers」と呼ぶアプリケーション間連携機構,「Resource Manager」と呼ぶプログラムのリソース管理機構などを備えている。

現段階では通話機構としてはGSMに対応している。またデータ通信の機構として,BluetoothやEDGE,3G,無線LANにも対応している。このあたりは,必ずしも携帯電話機だけでなく,ほかの機器への展開を考慮したものだと言えるだろう。またオープンソース・ソフトウエアの取り込みにも積極的だ。例えばAndroidのブラウザ・エンジンは「WebKit」を採用している。このエンジンは米Apple Inc.の「iPhone」に搭載された「Safari」や米Nokia Corp.のS60ソフトウエア・プラットフォーム向け「Web Browser for S60」にも使われている。このほかデータベース管理ソフトのSQLiteもオープンソース・ソフトウエアだ。

この記事を中国語で読む