为什么在 Android 系统上运行的 Java 程序不使用标准 Java API 和虚拟机?
标准 Java API 和虚拟机主要设计用于桌面和服务器系统,它们与移动设备的兼容性并不高。因此,Google 为移动设备创建了不同的 API 和虚拟机,这就是所谓的 Dalvik 虚拟机。
Dalvik 虚拟机是 Android 运行时的关键组件,它是专门为 Android 开发的 JVM(Java 虚拟机)的一部分。Dalvik 虚拟机使用 Java 中非常重要的功能,例如内存管理和多线程等。Java 程序首先被转换为 JVM 字节码,然后被解释为 DVM 字节码。
JVM 和 DVM 的详细信息如下:
Java 虚拟机
Java 虚拟机是一个应用程序,它提供运行时环境来执行 Java 字节码。它将字节码转换为机器码。Java 虚拟机可以执行多种操作,例如加载代码、验证代码、执行代码、提供运行时环境等。
下图说明了 Java 虚拟机的运行原理:
Dalvik 虚拟机
Dalvik 虚拟机是 Java 虚拟机的一个版本,它针对低功耗手持设备(即移动设备)进行了优化。DVM 优化了移动系统的电池续航时间、内存和整体性能。
面向 Android 的程序首先使用 Java 编写,然后编译为 JVM 字节码。之后,此字节码被转换为 Dalvik 字节码并存储在 .dex 和 .odex 文件中。它们分别是 Dalvik 可执行文件和优化的 Dalvik 可执行文件。
下图说明了 Dalvik 虚拟机的运行原理:
广告