我知道这可能是Android中的一个基本问题。但是什么是Dalvik和dalvik-cache?
Answers:
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字节码)进行一些修改和优化。然后,它将生成的odex(优化的dex)文件缓存在/ data / dalvik-cache目录中,这样就不必在每次加载应用程序时都执行优化过程。
Dalvik缓存已不再是现代Android版本的一部分;Android 4.4 KitKat是最后一个利用此构造的工具。有关更多详细信息,请参见https://en.wikipedia.org/wiki/Dalvik_(软件)。