Android 4.4 Dalvik 与 ART 虚拟机内幕浅析50


Android 4.4 KitKat 引入了 ART(Android 运行时)虚拟机,以取代 Dalvik 虚拟机,这是 Android 系统此前使用的虚拟机。这两种虚拟机均负责在设备上执行 Android 应用程序,但在运行方式和功能方面存在一些关键差异。

Dalvik 虚拟机

Dalvik 虚拟机使用称为 DEX(Dalvik 可执行文件)的中间语言。DEX 文件是编译后的 Java 字节码,在应用程序安装时创建。Dalvik 虚拟机在应用程序安装时对 DEX 文件进行优化,并将它们存储在应用程序内部。当运行应用程序时,Dalvik 虚拟机将 DEX 文件加载到内存并逐条解释执行。这意味着 Dalvik 虚拟机需要在应用程序运行时进行即时编译,这可能会导致性能下降。

ART 虚拟机

ART 虚拟机采用不同的方法。它在应用程序安装时将 DEX 文件预编译为本机机器代码。这称为预编译,它在应用程序的整个生命周期内只执行一次。预编译后,应用程序在运行时不需要进行即时编译,这可以提高性能。此外,ART 虚拟机使用一种称为 Ahead-of-Time (AOT) 编译技术,其中应用程序在安装时进行完整的编译,包括对应用程序代码的所有可能的路径的编译。

与 Dalvik 虚拟机相比,ART 虚拟机具有以下优势:* 改进的性能:ART 虚拟机通过预编译和 AOT 编译消除了即时编译的开销,从而提高了应用程序性能。
* 更低的内存使用:由于 ART 虚拟机不需要在应用程序运行时进行即时编译,因此它可以减少内存使用。
* 更快的启动时间:通过预编译应用程序,ART 虚拟机可以减少应用程序的启动时间。

Dalvik 与 ART 的选择

Android 4.4 及更高版本支持 Dalvik 和 ART 虚拟机。默认情况下,Android 设备使用 ART 虚拟机。但是,对于某些应用程序或设备,Dalvik 虚拟机可能仍然更合适。例如:* 需要即时编译的应用程序:某些应用程序(例如游戏)依赖于在运行时修改其代码。这些应用程序可能会在 ART 虚拟机下运行不佳。
* 低端设备:ART 虚拟机对处理能力和内存的要求高于 Dalvik 虚拟机。对于低端设备,Dalvik 虚拟机可能是更好的选择。

自定义 Android 4.4 系统

如果您是高级用户,可以通过修改设备上的系统文件来自定义 Android 4.4 系统。这包括选择 Dalvik 或 ART 虚拟机以及优化虚拟机设置。以下是一些提示:* 选择虚拟机:要选择 Dalvik 或 ART 虚拟机,请转到“开发人员选项”并查找“选择运行时”选项。
* 优化虚拟机设置:您可以通过修改 文件来优化虚拟机设置。例如,您可以增加 ART 堆大小或启用强制预编译。

2025-02-21


上一篇:iOS 12 与 iOS 13 系统大小:深入分析

下一篇:Android 系统权限代码实现