什么是Dalvik和dalvik-cache?

And*_*ler 74 android dalvik

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

Jes*_*eke 128

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

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

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

很好的参考

  • 正确.除了增加下一个加载时间之外,没有任何效果,因为它是重建的. (15认同)
  • 如果删除这些Dalvik缓存怎么办?是否有任何影响,除了应用程序将需要时间加载,因为它需要重建它的Dalvik缓存? (14认同)
  • Art将dex文件编译为本机代码.那个已编译的代码现在存储在dalvik-cache中,带有art. (2认同)