Androidランタイム

ウィキペディアから、無料の百科事典
ナビゲーションにジャンプ 検索にジャンプ

Androidランタイム
開発者グーグル
リポジトリandroid .googlesource .com / platform / art /
で書かれているCC ++
オペレーティング・システムアンドロイド
タイプ実行時環境
ライセンスApacheライセンス2.0 [1]
Webサイトソース.android.com / devices / tech / dalvik / art .html ウィキデータでこれを編集する

AndroidランタイムART )は、 Androidオペレーティングシステムで使用されるアプリケーションランタイム環境です。ARTは、Androidで元々使用されていたプロセス仮想マシンであるDalvikを置き換えて、アプリケーションのバイトコードネイティブ命令に変換し、後でデバイスのランタイム環境で実行します。[2]

概要

DalvikアーキテクチャとARTアーキテクチャの比較

Android 2.2 "Froyo"は、トレースベースのジャストインタイム(JIT)コンパイルをDalvikにもたらし、実行するたびにアプリケーションを継続的にプロファイリングし、頻繁に実行されるバイトコードの短いセグメントをネイティブマシンコードに動的にコンパイルすることで、アプリケーションの実行を最適化します。Dalvikはアプリケーションの残りのバイトコードを解釈しますが、「トレース」と呼ばれるこれらの短いバイトコードセグメントのネイティブ実行により、パフォーマンスが大幅に向上します。[3] [4]

Dalvikとは異なり、ARTは、インストール時にアプリケーション全体をネイティブマシンコードにコンパイルすることにより、事前コンパイル(AOT)コンパイルの使用を導入します。DAlvikの解釈とトレースベースのJITコンパイルを排除することにより、ARTは全体的な実行効率を改善し、消費電力を削減します。これにより、モバイルデバイスでのバッテリーの自律性が向上します。同時に、ARTは、アプリケーションのより高速な実行、改善されたメモリ割り当てガベージコレクション(GC)メカニズム、新しいアプリケーションデバッグ機能、およびアプリケーションのより正確な高レベルのプロファイリングをもたらします。[2] [5] [6]

下位互換性を維持するために、ARTはDalvikと同じ入力バイトコードを使用します。これはAPKファイルの一部として標準の.dexファイルを介して提供され、.odexファイルはExecutable and Linkable Format(ELF)実行可能ファイルに置き換えられます。ARTのデバイス上のdex2oatユーティリティを使用してアプリケーションをコンパイルすると、コンパイルされたELF実行可能ファイルからのみ実行されます。その結果、ARTは、Dalvikの解釈とトレースベースのJITコンパイルに関連するさまざまなアプリケーション実行のオーバーヘッドを排除します。ARTの欠点は、アプリケーションのインストール時にコンパイルに追加の時間が必要になり、アプリケーションがわずかに多くのセカンダリストレージを使用することです。(通常はフラッシュメモリ)コンパイルされたコードを保存します。[2] [5] [6]

Android 4.4 "KitKat"は、ARTのテクノロジープレビューをもたらしました。これには、代替ランタイム環境として、Dalvikをデフォルトの仮想マシンとして維持することが含まれます。[7] [8] その後の主要なAndroidリリースであるAndroid5.0「Lollipop」では、Dalvikは完全にARTに置き換えられました。

Android 7.0 "Nougat"は、 Javaランタイム環境を廃止されたApache HarmonyからOpenJDKに切り替え、ARTへのコードプロファイリングを備えたJITコンパイラを導入しました。これにより、Androidアプリの実行時のパフォーマンスが常に向上します。[9] JITコンパイラーは、ARTの現在の事前コンパイラーを補完し、アプリの一部をコンパイルするだけでランタイムパフォーマンスを向上させ、ストレージスペースを節約します。[8] [10]

も参照してください

参考文献

  1. ^ 「通知-プラットフォーム/アート-GitatGoogle」2021年6月25日取得
  2. ^ a b c Andrei Frumusanu(2014年7月1日)。「AndroidLでのAndroidランタイム(ART)の詳細」AnandTech 2014年7月5日取得
  3. ^ ベンチェン; ビル・ブズビー(2010年5月)。「AndroidのDalvikVM用のJITコンパイラ」(PDF)android-app-developer.co.ukGooglepp。5–14。2015年11月6日にオリジナル(PDF)からアーカイブされました2015年3月18日取得
  4. ^ Phil Nickinson(2010年5月26日)。「GoogleAndroid開発者は、DalvikとFroyoのJITについて詳しく説明しています」androidcentral.com 2014年7月8日取得
  5. ^ a b 「Android開発者:ARTとDalvik」source.android.com2015年3月9日2015年3月18日取得
  6. ^ a b 「Android開発者:ARTの構成–ARTの仕組み」source.android.com2015年3月9日2015年3月18日取得
  7. ^ ショーンバックリー(2013年11月6日)。「」Android KitKatでの「ART」実験は、バッテリー寿命を改善し、アプリを高速化します」。Engadget2014年7月5日取得
  8. ^ a b Daniel P.(2013年11月7日)。「AndroidKitKatの実験的なGoogleARTランタイムは、アプリの実行を2倍速くすることができます」phonearena.com2014年7月7日にオリジナルからアーカイブされました2014年7月5日取得
  9. ^ 「開発者向けAndroid7.0」Android開発者2021年3月22日取得
  10. ^ 「ARTJust-In-Time(JIT)コンパイラの実装」source.android.com2017年1月22日2017年1月22日取得

外部リンク