我知道这可能是Android中的一个基本问题。但什么是Dalvik和dalvik-cache?
答案 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 )文件,这样它就不必每次都执行优化过程加载一个应用程序。
答案 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)。