Android Runtime(ART)は、Androidオペレーティングシステムで使用されるアプリケーションランタイム環境です。 ANDROIDで最初に使用されていたプロセス仮想マシンであるDalvikを置き換えると、ARTはアプリケーションのバイトコードをネイティブ命令に変換し、後でデバイ
android。googlesource.com/プラットフォーム/アート/
で書かれたC、C++
Android(オペレーティングシステム)
source.android.com/devices/tech/dalvik/art.html
Android2.2″Froyo”はtrace-based just-in-time(JIT)コンパイルをDalvikに導入し、実行するたびにアプリケーションを継続的にプロファイリングし、頻繁に実行されるバイトコードの短いセグ Dalvikはアプリケーションのバイトコードの残りの部分を解釈しますが、”トレース”と呼ばれる短いバイトコードセグメントのネイティブ実行は、大幅なパフォーマ
DALVIKとは異なり、ARTはインストール時にアプリケーション全体をネイティブマシンコードにコンパイルすることにより、aot(ahead-of-time)コンパイルの使用を導入しています。 DALVIKの解釈とトレースベースのJITコンパイルを排除することにより、ARTは全体的な実行効率を向上させ、消費電力を削減し、モバイルデバイスのバッテリ自律性 同時に、ARTは、アプリケーションの実行の高速化、メモリ割り当てとガベージコレクション(GC)メカニズムの改善、新しいアプリケーションのデバッグ機能、およびアプリケーションのより正確な高レベルのプロファイリングを実現します。
下位互換性を維持するために、ARTは標準で提供されるDalvikと同じ入力バイトコードを使用します。APKファイルの一部としてdexファイル,ながら.odexファイルは、Elf(Executable and Linkable Format)実行可能ファイルに置き換えられます。 アプリケーションがARTのデバイス上のdex2oatユーティリティを使用してコンパイルされると、コンパイルされたELF実行可能ファイルからのみ実行され; その結果、ARTはDalvikの解釈とトレースベースのJITコンパイルに関連するさまざまなアプリケーション実行オーバーヘッドを排除します。 欠点として、ARTはアプリケーションのインストール時にコンパイルに追加の時間を必要とし、アプリケーションはコンパイルされたコードを格納するために
Android4.4″KitKat”は、代替ランタイム環境としてそれを含め、デフォルトの仮想マシンとしてDalvikを維持し、ARTの技術プレビューをもたらしました。 その後の主要なAndroidリリースでは、Android5。0″ロリポップ”、Dalvikは完全にARTに置き換えられました。
Android7.0″Nougat”は、Javaランタイム環境をOpenJDKに切り替え、ARTにコードプロファイリングを備えたJITコンパイラを導入し、Androidアプリの実行時に常にパフォーマンスを向上させることができる。 JITコンパイラは、ARTの現在のアヘッドタイムコンパイラを補完し、ランタイムパフォーマンスを向上させ、アプリの一部のみをコンパイルすることによ