Androidの仮想マシンの開発の歴史

アンドロイド2.2前(のDalvikは解釈)

Dalvik仮想マシンとして、ローディングDEX / ODEXファイルを担当すると、システムの動作にマシンコードに解析されます。この時点で、純粋のDalvikは解釈しました。

 

アンドロイド2.2(のDalvik JIT)

Dalvik JITコンパイルインスタントは、Hospotにより、JITコンパイラを行うには、DEX / ODEXコード、コンパイルされたネイティブコードをコンパイルし、最適化頻繁。

 

短所:必要あなたが起動するたびに再コンパイルすることが、より多くの電力がバッテリーのオーバーヘッドを引き起こし、実行されています。

 

アンドロイド4.4(ARTのAOT /のDalvik)

ART(Androidのランタイム)とAOT(前・オブ・タイム)、そしてこの時点でのDalvik ARTの共存をご紹介し、ユーザーは両方を選択することができます。

 

アンドロイド5.0(ARTのAOT)

ART(Androidのランタイム)に完全に取って代わるのDalvik、AOTのみコンパイルモードです。

JITは、実行時に(動的コンパイルを)コンパイルされ、すべての時間は、プログラムを実行するために再コンパイルするODEXします。AOTは静的に、ローカルアプリケーションと同等であるアプリケーションのインストールプロセス意志dex2oat DEXプリコンパイルされたELFファイルを、コンパイルされます。

 

短所:

アプリケーションのインストールやシステムの後のアップグレードは、時間のかかるを再コンパイルする必要があります。

最適化されたファイルには、追加のストレージスペースを取ります。

 

アンドロイド7.0(ARTのAOT / JIT)

混合AOTとJITコンパイル・モードを使用して7.0アンドロイド。

アプリケーションがインストールされている場合1、DEXはコンパイルされません。

JITコンパイラは、プロファイルJITコードキャッシュファイルを生成した後、ホット機能が同定された後に最初の動作は、パーサ解釈によって行わ2は、情報を記録するために、ホットスポット関数に格納されています。

3、携帯電話は、システムディレクトリスキャンアプリの実行AOTコンパイルプロセスにおけるアイドル(IDLE)やチャージ(充電)状態、プロファイル・ファイルに入ったとき。

 

ARTとのDalvikの違い

 

公開された28元の記事 ウォンの賞賛9 ビュー5574

おすすめ

転載: blog.csdn.net/rookiegan/article/details/104896834