Android仮想マシンDalvikとARTの詳細

ダリックとARTは共にAndroid仮想マシンの実装であり、主な違いはバイトコードの実行方法にあります。

  1. Dalvik仮想マシンは、Android 4.4以前のヴァージョンのデフォルトの仮想マシンです。JIT(Just-In-Time Compilation)を使用してバイトコードを実行します。Dalvikはアプリの実行中にバイトコードを機械語に変換して直接実行するため、アプリの実行効率が向上します。ただし、アプリを実行するたびにJITに必要なプロセスを伴うため、アプリの起動が遅くなります。
  2. ART虚拟マシンとは、Android 5.0以降でデフォルトの仮想マシンであり、バイトコードを実行するためにAOT(Ahead-Of-Time Compilation)手法を使用します。アプリケーションのインストール時にバイトコードを事前コンパイルしてマシンコードに変換し、端末に保存します。これにより、アプリケーション実行時に即時コンパイルする必要がなく、マシンコードを直接実行できます。この手法はアプリケーションの起動時間や実行効率を向上させますが、より多くのストレージ領域を必要とします。

ダリク仮想マシンはJavaバイトコードをオンザフライでコンパイルして実行するため、起動は遅いが実行効率は高い。対してART仮想マシンはバイトコードを事前にコンパイルして実行するため、起動は高速だが、使用メモリ量が多い。Android 7.0以降のART仮想マシンでは、一部のコードをオンザフライでコンパイルして実行するJust-In-Timeコンパイラ(JITコンパイラ)が導入され、実行効率が向上した。

bannerAds