2011-09-24 7 views

答えて

117

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

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

あなたが言う

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

good reference

+10

これらのDalvikキャッシュを削除するとどうなりますか? Dalvik Cacheを再構築する必要があるため、アプリケーションの読み込みに時間がかかることを除いて、効果はありますか? – Swanand

+11

正しい。次の読み込み時間を増やす以外には、再構築時に影響はありません。 – JesusFreke

+0

他の重複した質問に投稿された人は、ここにあなたの無礼なwikiリンクがあります。「DalvikのキャッシュはあなたのAndroidの不可欠な部分です:http://en.wikipedia.org/wiki/Dalvik_%28software %29 " – qneill

2

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

インターネットで、Dalvik VMオペレーションコードと「通常の」Java VMオペコードの違いを調べることができます。

-1

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

+0

に画像として保存されました????どうして ??? –

+0

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

-2

Dalvikは元々Dan Bornsteinによって書かれたオープンソースのソフトウェアで、アイスランドのEyjafjörðurにあるDalvíkの漁村の名前を付けました。

+0

これは本当にすでに受け入れられている答えに役立つ何かを追加しますか? – yakobom

+0

意味がない、せいぜいコメントであったかもしれない。 –

関連する問題