Google社が公開したオーバービューから判断できることはこの程度だ。この先はさらに,内部構造に踏み込まないと分からない。しかし現状では,Androidのソース・コードの公開範囲はかなり狭い。開発ツールを除けば,カーネルとHTMLのレンダリング・エンジン(WebKit)だけで,構成要素のごく一部にすぎない注4)。ただし実際に動くAndroid SDKを通じてかなりの事実が浮かび上がってきた。
注4) ソース・コードの全体像は2008年中に公開するとGoogle社は発表している。
本物のLinuxを動かす
SDKに付属するエミュレータは,オープンソースの「QEMU」をAndroid向けに適用したものだ。エミュレーションの対象となるハードウエアをQEMUで記述し,その上でAndroidの実行環境を動かしている。つまり,疑似的にAPI層を再現する方式(シミュレーション)ではなく,本物のソフトウエアを疑似的なハードウエアで動かしている注5)。
注5) Google社はAndroidの移植性は高いという。「社内の技術者がAndroidをフィンランドNokia社のWeb端末『N800』に移植した。ソース・コードの変更個所はわずか4行。3時間で動かすことができた」(Rubin氏)。
エミュレータのソース・コードを見ると,Androidが対象とするハードウエアが浮かび上がってくる(図2)。主なハードウエアの構成は「Android_arm.c」ファイルに記述されている。マイクロプロセサは「ARM926」。コアはARM9Eである。接続する周辺機器や割り込みコントローラなどは,同じファイルに記述してある。ただし主記憶のメモリ・サイズは「vl.c」,VRAMの大きさは「vl.h」ファイルに分散して記述されていた。前者は96Mバイト,後者は8Mバイトである。