我知道这可能是Android的一个基本问题。但是什么是Dalvik和dalvik-cache呢?
发布于 2011-09-25 03:37:39
Dalvik是Android使用的虚拟机。它通常被认为是Java虚拟机,尽管这并不完全正确。它使用与Java相同的对象模型,其内存模型也几乎相同。但是dalvik VM是基于寄存器的VM,而不是基于堆栈的Java VM。
因此,它使用与Java完全不同的字节码。但是,Android SDK包含将Java字节码转换为dalvik字节码的dx工具,这就是为什么您能够用Java编写Android应用程序的原因。
当你说"dalvik-cache“时,我假设你指的是在典型安卓设备上可以找到的/data/dalvik-cache目录。当您在Android上安装一个应用程序时,它会对该应用程序的dex文件(包含该应用程序的所有dalvik字节码的文件)执行一些修改和优化。然后,它将生成的odex (优化的索引)文件缓存在/data/dalvik-cache目录中,这样它就不必在每次加载应用程序时都执行优化过程。

发布于 2011-09-25 03:23:42
Dalvik是基于java的虚拟机,在Android上运行Android应用程序。Dalvik-cache是Dalvik VM的缓存区,它是在Dalvik VM优化您的应用程序运行时创建的。
如果您愿意,您可以在互联网上查找更多关于Dalvik VM操作码和“普通”Java VM操作码之间的区别。
发布于 2015-06-30 20:04:13
Dalvik缓存只不过是存储为可执行文件的应用程序代码的临时编译。由于这些代码可以从位于Dalvik Cache之外的原始应用程序代码动态编译,因此您可以清除Dalvik Cache,而不会造成任何实际的损失。
https://stackoverflow.com/questions/7541281
复制相似问题