Dalvikとdalvik-cacheとは何ですか?


80

これはAndroidの基本的な質問かもしれません。しかし、Dalvikとdalvik-cacheとは何ですか?

回答:


136

Dalvikは、Androidで使用される仮想マシンです。これは正確には正しくありませんが、一般的にはJava仮想マシンと考えられています。Javaと同一のオブジェクトモデルを使用し、そのメモリモデルもほぼ同等です。ただし、dalvik VMは、スタックベースのJava VMとは対照的に、レジスタベースのVMです。

したがって、Javaとはまったく異なるバイトコードを使用します。ただし、Android SDKには、Javaバイトコードをdalvikバイトコードに変換するdxツールが含まれているため、JavaでAndroidアプリケーションを作成できます。

dalvik-cache」と言うときは、一般的なAndroidデバイスにある/ data / dalvik-cacheディレクトリを意味していると思います。Androidにアプリケーションをインストールすると、そのアプリケーションのdexファイル(アプリケーションのすべてのdalvikバイトコードを含むファイル)に対していくつかの変更と最適化が実行されます。次に、結果のodex(最適化されたdex)ファイルを/ data / dalvik-cacheディレクトリにキャッシュするため、アプリケーションをロードするたびに最適化プロセスを実行する必要がありません。

良いリファレンス


15
これらのDalvikキャッシュを削除するとどうなりますか?Dalvikキャッシュを再構築する必要があるため、アプリの読み込みに時間がかかる以外の効果はありますか?
スワナンド2012年

16
正しい。再構築されるため、次のロード時間を増やす以外の効果はありません。
JesusFreke 2012年

誰かが別の重複した質問に投稿したように、ここにあなたの無償のwikiリンクがあります "DalvikキャッシュはあなたのAndroidの重要な部分です。それについてもっと読むことができます:en.wikipedia.org/wiki/Dalvik_%28software%29 "
qneill

1
VMがARTになったのに、Android Lollipop(バージョン5)にまだDalvikキャッシュがあるのはなぜですか?互換性のためだと言う人もいますが、かなりのスペース(約900MB)が必要であることに気づきました。
Androidデベロッパー

3
Artはdexファイルをネイティブコードにコンパイルします。そのコンパイルされたコードは、アートとともにdalvik-cacheに保存されているものです。
JesusFreke 2015

3

Dalvikは、Android上でAndroidアプリを実行するJavaベースの仮想マシンです。Dalvik-cacheはDalvikVMのキャッシュ領域であり、DalvikVMがアプリの実行を最適化するときに作成されます。

必要に応じて、DalvikVMオペコードと「通常の」JavaVMオペコードの違いについてインターネットで詳細を調べることができます。


0

Dalvikキャッシュは、実行可能ファイルとして保存されているアプリケーションコードの一時的なコンパイルに他なりません。これらはDalvikキャッシュの外部にある元のアプリケーションコードから動的にコンパイルできるため、実際のペナルティなしでDalvikキャッシュをクリアできます。


@AndroidKillerは、DalvikまたはARTの存在に応じて、バイトコードまたはバイナリイメージになります。グラフィック画像ではありません。
Neil Steiner 2015年

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.