Android 虚拟机:Dalvik 与 ART 之间的创新革命
2024-02-08 06:42:06
ART 与 Dalvik:移动应用程序执行的演变
什么是虚拟执行环境?
虚拟执行环境(VEE)是运行于物理设备之上的软件层,负责执行应用程序。它创建了一个隔离环境,应用程序可以在其中运行,而无需与底层硬件直接交互。
Dalvik:移动计算的早期开拓者
在移动计算的早期,Android 系统依赖于 Dalvik 虚拟机 (VM) 来执行应用程序。Dalvik 是一款基于寄存器的虚拟机,采用即时 (JIT) 编译技术。JIT 编译是一种在运行时将 Java 字节码转换为设备特定机器代码的方法。这种方法虽然执行速度较快,但存在一些固有的限制,例如内存开销高和启动时间慢。
ART:性能和效率提升的革命
为了应对这些挑战,Google 在 2014 年推出了 Android 运行时(ART)。ART 是一款基于提前(AOT)编译的虚拟机。AOT 编译是一种在安装应用程序时将 Java 字节码预编译为机器代码的方法。这种方法显著提高了启动速度并减少了内存开销。
ART 的主要优势
与 Dalvik 相比,ART 具有以下主要优势:
- 更快的启动时间: AOT 编译消除了 JIT 编译的开销,从而使应用程序在启动时能够更快地执行。
- 更低的内存开销: 预编译的机器代码比 JIT 编译的代码占用更少的内存,从而释放更多系统资源用于其他任务。
- 更高的性能: AOT 编译器能够进行更高级别的优化,生成更优化的机器代码,从而提高应用程序的整体性能。
- 更流畅的用户体验: 这些性能提升共同为用户提供了更流畅、更响应的用户体验。
AOT 与 JIT:技术差异
Dalvik 和 ART 之间最显着的技术差异在于它们采用的编译技术。Dalvik 使用 JIT 编译,这是一种在运行时将字节码翻译为机器代码的方法。相反,ART 使用 AOT 编译,这是一种在安装时将字节码预编译为机器代码的方法。
JIT 编译的优势在于速度快且内存开销低。但是,它会导致应用程序启动时间较长,因为必须在运行时进行编译。另一方面,AOT 编译虽然启动时间较快且性能更高,但内存开销更大,因为预编译的代码必须存储在设备上。
实际示例和基准测试
为了展示 ART 对 Android 应用程序的实际影响,这里有一些示例和基准测试结果:
- 启动时间: ART 应用程序的启动时间比 Dalvik 应用程序快得多,尤其是在低端设备上。
- 内存使用: ART 应用程序的内存使用量比 Dalvik 应用程序略高,但通常可以忽略不计。
- 性能: ART 应用程序的性能通常比 Dalvik 应用程序高 10-20%,这在图形密集型应用程序或处理大量数据时尤为明显。
ART 在 Android 发展中的作用
ART 的引入标志着 Android 虚拟机技术的一场革命。通过采用 AOT 编译和优化策略,ART 显着提高了应用程序的启动速度、性能和内存效率。这些优势为用户提供了更流畅、更响应的用户体验,并为开发人员提供了创建更高效、更强大的应用程序的平台。
随着 Android 生态系统的发展,ART 将继续扮演关键角色,推动创新并增强移动计算体验。
常见问题解答
- ART 和 Dalvik 哪个更好?
ART 在启动时间、性能和内存效率方面都比 Dalvik 更好。
- ART 会影响我的旧应用程序吗?
不会。ART 向后兼容 Dalvik 应用程序。
- 如何判断我的应用程序正在使用 ART?
您可以在设备的开发者选项中检查您的应用程序是否正在使用 ART。
- ART 对于游戏有什么好处?
ART 可以提高图形密集型游戏的性能和流畅性。
- 我如何为我的应用程序启用 ART?
ART 是 Android 系统的默认虚拟机。您无需执行任何操作即可为您的应用程序启用 ART。
结论
ART 的推出是一项重大的技术进步,彻底改变了 Android 应用程序的执行方式。通过其增强的性能、效率和用户体验,ART 为移动计算领域开辟了新的可能性,并继续塑造 Android 的未来。