これはAndroidの基本的な質問かもしれません。しかし、Dalvikとdalvik-cacheとは何ですか?
これはAndroidの基本的な質問かもしれません。しかし、Dalvikとdalvik-cacheとは何ですか?
回答:
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ディレクトリにキャッシュするため、アプリケーションをロードするたびに最適化プロセスを実行する必要がありません。
Dalvikは、Android上でAndroidアプリを実行するJavaベースの仮想マシンです。Dalvik-cacheはDalvikVMのキャッシュ領域であり、DalvikVMがアプリの実行を最適化するときに作成されます。
必要に応じて、DalvikVMオペコードと「通常の」JavaVMオペコードの違いについてインターネットで詳細を調べることができます。
Dalvikキャッシュは、実行可能ファイルとして保存されているアプリケーションコードの一時的なコンパイルに他なりません。これらはDalvikキャッシュの外部にある元のアプリケーションコードから動的にコンパイルできるため、実際のペナルティなしでDalvikキャッシュをクリアできます。
Dalvikキャッシュは、最新のAndroidバージョンの一部ではなくなりました。Android 4.4 KitKatは、この構造を利用した最後の製品です。詳細については、https://en.wikipedia.org/wiki/Dalvik_(software)を参照してください。