2回に分けて,Androidの実装形態とAPIを紹介する。Google社がAndroidのソフトウエア開発キット(SDK:software development kit)を公開した,2007年末の情報に基づいたものである。当時公開されていたのはAndroidの一部だったものの,その構成や設計思想は,公開された範囲からうかがい知ることができた。AndroidのカーネルはLinuxだが,それ以外の部分はLinuxとはかなり違う。独自の仮想マシンを重視した設計だが,一方で既存のJavaプログラムとの互換性を生かそうとするなど「いいとこ取り」を目指している。(以下の本文は,『日経エレクトロニクス』,2007年12月17日号,pp.61-66から転載しました。内容は執筆時の情報に基づいており,現在では異なる場合があります)

 2007年12月1日時点で公開されている情報を基に,Androidがどのようなソフトウエアなのか「解剖」した(図1)。まとめると,Androidは2年後に世界で標準的になりそうな携帯電話機を念頭に,現時点における適切な技術をうまく組み合わせたものといえる。「既存のオープンソースの技術や,Javaプログラマーの経験などをうまく取り入れている。しかも過去のしがらみがない分,新しい技術を盛り込み,きれいにまとめている」(京都マイクロコンピュータ(KMC) 東京オフィス ゼネラル マネージャの辻邦彦氏)。

 今回の評価の軸は大きく二つある。Androidの実装形態そのものと,API(application programming interface)である。前者はAndroidの移植性や,Androidのアーキテクチャの評価にかかわる。携帯電話機にAndroidを移植する場合に重要である。実装形態を詳細に調べた結果,全体的には過去との継承性などを考慮せず,新しいOSを一から作り直すという意気込みが浮かび上がった。例えばLinuxをカーネルに使いつつも,ライブラリ群に普通のLinuxとは違うソフトウエアを用いている。機器メーカーの要望に配慮し,自由に使えるライセンスのソフトウエアを集めた結果だ注1)

注1) カーネル以外をLinuxとは変えている理由の一つにライセンスがある。「機器メーカーはLinuxが採用しているGPLライセンスを好まない。できるだけ自社の知的財産を公開したくないからだ。だからAndroidでは,GPLのソフトウエアをなるべく取り除くようにしている」(Google社のAndy Rubin氏)。

図1 Androidのアーキテクチャと公開されている範囲 黄色の部分のソース・コードが公開されている。まだごく一部しか公開されていないことが分かる。このほか,サンプル・プログラムとして「NotePad」「APIDemo」「LunarLander」のソース・コードが付属する。
図1 Androidのアーキテクチャと公開されている範囲 黄色の部分のソース・コードが公開されている。まだごく一部しか公開されていないことが分かる。このほか,サンプル・プログラムとして「NotePad」「APIDemo」「LunarLander」のソース・コードが付属する。 (画像のクリックで拡大)