什么是Dalvik和dalvik-cache?

时间:2011-09-24 19:15:37

标签: android dalvik

我知道这可能是Android中的一个基本问题。但什么是Dalvik和dalvik-cache?

4 个答案:

答案 0 :(得分:125)

Dalvik是Android使用的虚拟机。它通常被认为是一个Java虚拟机,尽管这并不完全正确。它使用与Java相同的对象模型,其内存模型也几乎相同。但是dalvik VM是基于寄存器的VM,而不是基于堆栈的Java VM。

因此,它使用与Java完全不同的字节码。但是,Android SDK包含 dx工具,用于将Java字节码转换为dalvik字节码,这就是您能够用Java编写Android应用程序的原因。

当您说“ dalvik-cache ”时,我认为您的意思是可以在典型的Android设备上找到的 / data / dalvik-cache 目录。在Android上安装应用程序时,它会对该应用程序的dex文件(包含应用程序的所有dalvik字节码的文件)执行一些修改和优化。然后它会在 / data / dalvik-cache 目录中缓存生成的odex(优化的dex )文件,这样它就不必每次都执行优化过程加载一个应用程序。

good reference

答案 1 :(得分:2)

Dalvik是基于Java的虚拟机,可在Android上运行Android应用程序。 Dalvik-cache是​​Dalvik VM的缓存区域,它是在Dalvik VM优化您的应用程序以便运行时创建的。

如果需要,您可以在互联网上查找有关Dalvik VM操作码和“普通”Java VM操作码之间差异的更多信息。

答案 2 :(得分:0)

Dalvik缓存只是临时编译的应用程序代码存储为可执行文件。由于这些可以从位于Dalvik Cache外部的原始应用程序代码动态编译,因此您可以清除Dalvik缓存而不会有任何实际损失。

答案 3 :(得分:0)

Dalvik缓存不再是现代Android版本的一部分; Android 4.4 KitKat是最后一个使用此构造的应用程序。有关更多详细信息,请参见https://en.wikipedia.org/wiki/Dalvik_(software)