Google Android
アプリケーション
Androidは電子メールクライアント、SMSプログラム、カレンダー、地図、ブラウザー、コンタクト(アドレス帳)、その他を含む一組のコアアプリケーションを搭載します。すべてのアプリケーションは、Javaプログラミング言語を使用して記述されます。
やっぱりか!
いや、JavaScriptかJava経由で全てのアプリケーションを実行させるフレームワークになるだろうとは予測してたのです。
しかし、この独自VMはどの程度まで実行してくれるんだろう?
Androidランタイム
Androidは、Javaプログラミング言語のコアライブラリの機能の大部分を提供するコアライブラリを含んでいます。あらゆるAndroidアプリケーションはDalvik VMのインスタンスをアプリケーション毎に生成することによって、独立したプロセスで動作します。
Dalvik VMはデバイスが効率的に複数のヴァーチャルマシンを走らせることができるように作られています。
Dalvik VMは、省メモリのために最適化されたDalvikで実行可能なフォーマット(.dex)を使用してファイルを実行します。
VMはレジスターに基づいた、Java言語コンパイラによってコンパイルされたクラスを付属の"dx"ツールを使用して.dexフォーマットに変換したものを実行します。
実機向けのJIT最適化とかはしてくれなさそうだなぁ。dexの時点でAOTコンパイル……は、しなさそうだな(^^;)。「レジスターに基づいた」って言ってるから、局所変数をスタックからレジスタに再マッピングとかはしてそうだけど。
(追記)
Apache Harmonyベースらしい、という解析結果を出している人が。うーむ、だったら、
JITは一応あることにはなってるのかな。
しかし、あちこちで見つけるIntentって、あのTaoのIntentかなぁ?それとも、一般名詞?どういう文脈で登場するのかよく判らないんだよね。うーむ。