Nexus 5(Android 4.4 KitKat)では、Googleがアプリを実行するための2つのランタイムを出荷しました。
エンドユーザー向けのDalvikとARTの違いは何ですか?これによりエンドユーザーはどのように影響を受けますか?新しいARTランタイムを選択する必要がある特定の理由はありますか?
Nexus 5(Android 4.4 KitKat)では、Googleがアプリを実行するための2つのランタイムを出荷しました。
エンドユーザー向けのDalvikとARTの違いは何ですか?これによりエンドユーザーはどのように影響を受けますか?新しいARTランタイムを選択する必要がある特定の理由はありますか?
回答:
Dalvik VM(仮想マシン)は、GoogleのバージョンのJava VM(アプリが実行される)です。VMはアプリを隔離し、実際のハードウェアや他のアプリから独立させます。しかし、これが機能するためには、Dalvikはいわゆるバイトコード(仮想マシン用に設計された)をネイティブマシンコードに変換する必要があります。バイトコードからネイティブコードへの変換によるパフォーマンスの低下を最小限に抑えるために、ジャストインタイム(JIT)コンパイルと呼ばれるプロセスが実行されます。1
ART(Androidランタイム)は、Ahead-Of-Time(AOT)コンパイルを使用するDalvikの代替です。つまり、アプリを起動する前に、すぐに実行できる状態にコンパイルされます。これは通常、アプリのインストール時に行われ、起動と使用のプロセスをはるかに高速かつスムーズにします。また、これはコンパイルが一度だけ行われることを意味するため、バッテリー寿命も向上する可能性があります。
ARTのパフォーマンスとバッテリー寿命の観点で優れている場合、ARTを使用する必要がありますか?
いいえ。そうすると、サードパーティのアプリが破損する可能性があります。Googleは、開発者がアプリをテストできるように、Android 4.4でこのARTプレビューを出荷しました。
サイドノート: GoogleのARTでのアプローチはiOSに勝つことです(iOSアプリはネイティブなので、ローエンドのハードウェア仕様でもパフォーマンスが向上します)が、どこに向かっているのかわかりません... 参照してください。OEMはどちらか一方または両方を使用してデバイスを構築するのは自由です。最終バージョンはほとんどのアプリには影響しませんが、100%クロスプラットフォームではありません。
1 JITはAndroid 2.2でDalvikに追加されたことに注意してください