IcedRobot

Hotspotで動くOpenJDKベースのandroidらしい。
スライドを見るとA Java ME implementationやAn application layerと書かれており、Remove unnecessary dependencies - Bionicともある。
JavaMEの実装というのがHotspotで動くAndroidでJavaMEのライブラリを実装するということなのだろうか?よくわからない。それだとPhoneMEの移植だろうか?
だが、『Aims to be the most similar in terms of functionality with the “standard” Android – Hence the appellative “Micro Edition”』とあるのでたぶん違う。

重要なのはBionic依存の排除だ。特許がらみをクリアにして真にフリーなAndroidを目指すとのことだけどBionicから解放されればいろいろな制約(主にマルチCPU・マルチスレッド時のパフォーマンス)を受けなくなる。

BionicとAndroidのライブラリ層をGNUDroidという部分が置き換え、Daneelというpure java DalvikインタープリタがDalvikを置き換えるようだ。
そして、GNUBishopというのがどうやら(標準ライブラリにあたる)Apache Harmonyの置き換えらしい。

『If it runs in the JVM like JRuby, Jython or Clojure,there can't be any reasonable claim anymore!』とあるがDaneelはDalvikインタープリタなので走っているのはDalvikバイトコードだからJavaVM言語が持っているJITが吐くJavaバイトコードを走らせられないのではないか?
もしかして、ちゃんとしたJavaのバイトコードを走らせるものなのだろうか?幾分情報が少ないので細かいことはよくわからない。

そもそもBionicがあり標準ライブラリ部分がApache Harmonyであまつさえ、Javaのバイトコードすら走らないというのが乗り気にはなれなかったのでそのうち2つが解決されるというのなら大歓迎だ。
実にクールで自分としてはホットな話題でもある。

一番の理想はAndroid上でjava bytecodeとjavaのライブラリが動くことだがそれだとOSとしてのAndroidまるごと捨てなくてはいけないので難しいだろう。

Daneelの説明に『Is our bridge between the Worlds』とある。言いたいことはよく分かる。

Rhinoのinvokdynamicブランチ

Rhinoのmasterは現在、1.7.4pre。少し古めのinvokdynamicブランチを試してみた。
build.propertiesのtargetとsourceが1.5になっているので1.7に変更してant jarを実行。
ひとことで言うと20%ほど早くなっていた。

以上、自分用メモ──。