Dalvik和dalvik-cache是​​什么?

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

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

相应地,它使用与Java完全不同的字节码。 但是,Android SDK包含将Java字节码转换为dalvik字节码的dx工具 ,这就是为什么您可以使用Java编写Android应用程序的原因。

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

很好的参考

Dalvik是基于Java的虚拟机,在Android上运行Android应用程序。 Dalvik-cache是​​Dalvik VM的caching区域,当Dalvik VM优化您的应用程序运行时创build。

如果需要,可以在互联网上查看Dalvik VM操作码和“普通”Java VM操作码之间的区别。

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

Dalvik是开源软件,最初由丹·伯恩斯坦(Dan Bornstein)编写,后者在冰岛埃亚菲亚德(Eyjafjörður)的达尔维克(Dalvík)渔村命名。