达尔维克是什么? 在谈论Android及其内部运作时,我们听到这个词在互联网上被大量抛出。 虽然没有简单的解释,但我们可以在几个段落中给出,如果你需要喂养你的书呆子,我们可以涵盖基本知识并指出你正确的方向。 简而言之,Dalvik是一个运行用Java编写的应用程序和代码的虚拟机。 标准Java编译器将源代码(写为文本文件)转换为字节码,然后编译为Dalvik VM可以读取和使用的.dex文件。 实质上,类文件被转换为.dex文件(非常类似于jar文件,如果使用标准Java VM),然后由Dalvik虚拟机读取和执行。 类文件中使用的重复数据仅在.dex输出中包含一次,这样可以节省空间并减少开销。 安装应用程序时,可以再次修改可执行文件,以便为移动设备进行更优化。 像字节顺序交换和内联链接数据结构和函数库之类的东西使文件更小,并在我们的设备上运行得更好。 Dalvik VM是从Android方面开始编写的。
困惑了吗? 不要心疼,令人讨厌的编程谈话通常会产生这种影响。 可以这样想 - 当您为计算机构建Java应用程序时,Java虚拟机会运行源代码的编译输出。 这就是Java几乎可以在任何操作系统上运行的原因。 Dalvik是Java虚拟机的移动优化版本,使用Apache Harmony项目的代码构建,该项目是开源的,比我们有限硬件上的标准Java VM运行得更好,设计为可以运行多个一次VM的实例 - 即多任务处理。 由于Dalvik是开源的,因此它也被移植到其他操作系统,例如BlackBerry PlayBook上的操作系统。 它非常复杂,非常酷,Oracle(从Sun购买Java的公司)讨厌它。
Android使用Dalvik是因为虽然标准Java虚拟机的许可证是GPL2(免费和开源),但当放置在移动设备中并使用Java Micro Edition时,它不是。 谷歌和甲骨文之间的重大争议都是基于达尔维克。 谷歌声称它是在“洁净室”环境中编写的,没有使用任何Oracle的代码,甲骨文不同意。 我们声称不知道,我们很高兴它的确如此有效。