web-dev-qa-db-ja.com

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

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

73
Android Killer

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

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

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

good reference

126
JesusFreke

DalvikはJavaベースの仮想マシンで、Android Android上のアプリです。Dalvik-cacheはDalvik VMのキャッシュ領域です。Dalvik= VMはアプリの実行を最適化します。

Dalvik VM op-codesと "normal" Java VM =必要に応じてオペコード。

2
omermuhammed

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

0
user5065310