OpenJDKベースのAndroidを目指す「IcedRobotプロジェクト」

先週の話になりますが、ベルギーで行われたオープンソースイベント「FOSDEM」の場において、OpenJDKをベースとしたAndroidを開発する「IcedRobot」というプロジェクトが発表されました。
IcedRobot: The GNUlization of Android
セッションスライドはここで公開されているので、詳細はこれを見るのが一番早いかと思います。
ご存知の通りGoogleAndroidにはVMとしてDalvikが搭載されているわけですが、このDalvikにはApache Harmonyプロジェクトの成果物が利用されています。このDalvikをはじめとして、GoogleOracleをはじめとしたいくつかの企業からライセンスや特許上の問題を指摘されていて、それに関する訴訟が行われていることも周知の事実です。そういうライセンス上のいざこざを回避するために、OpenJDKをベースとしたAndroidを作ろうというのがこのプロジェクトの趣旨のようです。OpenJDKはGPL(with classpath例外)で、これはOracleにとっても肝入りで公開されているもなので、ソースコードさえ公開してあればライセンス上の問題はクリアできるというわけです。
IcedRobotの目的は他にもあります。ひとつはAndroidをデスクトップPCでも使えるようにするというもの。Google TVはTV版のAndroidとも言えるものですが、同じようなことがPC環境でもできたらうれしいじゃないか、ということのようです。また、JVMの上でDalvikを動かすことも(そのための法律上の制限を回避すること)目的のひとつとなっているようです。

上記の目的のために、IcedRobotプロジェクトでは以下の3つのサブプロジェクトを立ち上げるとのことです。

  • GNUDroid
  • GNUBishop
  • Daneel

GNUDroidはIcedRobotの核となる部分で、Dalvik VMを動作させるためのベースになります。Dalvik自身はGNUDroidの上で単体のアプリケーションとして動作する形になるようです。AndroidアプリはDalvikがあれば動くので、既存のAndroidアプリはIcedRobot上での動作がサポートされるということでしょう。これは"IcedRobot Micro Edition"と位置づけられています。
DaneelはPure JavaベースのDalvikインタプリタを開発するプロジェクトです。Dalvik VM依存がこれに置き換えられることになります。
GNUBishopはDalvikランタイムを完全にOpenJDKベースのものに置き換えるためのプロジェクトです。具体的には、Dalvik用のコアライブラリをすべてOpenJDKベースで作り直すことになります。また、VMとしてはDalvik VMの代わりにDaneelを使います。GNUBishopは"IcedRobot Standard Edition"と位置づけられていて、現時点ではAppletのようなWebブラウザ用のプラグイン、デスクトップアプリケーションフレームワーク、そして完全なOSのディストリビューションという3つの形での提供を考えているとのことです。

IcedRobotプロジェクトはまだ発表されたばかりであり、Webサイトすら完成していない状態なので、今後どのように成長していくのかは全く未知数です。そもそも携帯電話メーカーがGPLを好んで選択するかというと、ちょっと懐疑的にならざるを得ないので(これはDalvikがHarmonyを採用した理由のひとつでもある)、方向性としては既存Androidの置き換えというよりもデスクトップ版Androidという性格の方が強くなるのではないかと思います。とはいえ、試みそのものは非常に興味深く、先行きが楽しみです。