返回
Android虚拟机:Dalvik vs ART
Android
2023-09-10 21:01:39
Android系统一直以来都依赖于虚拟机(VM)来执行应用程序,而Dalvik和ART是Android设备上使用的两种主要虚拟机。这两种虚拟机在设计和实现上存在显着差异,从而影响了Android应用程序的性能和用户体验。
Dalvik虚拟机:Android的原始VM
Dalvik虚拟机(DVM)是为Android平台专门开发的,于Android 1.0中首次引入。DVM是一个基于寄存器的虚拟机,旨在优化内存使用和执行速度。它采用了一种称为“字节码解释”的技术,其中应用程序代码在运行时被转换成机器指令。
Dalvik虚拟机的主要特点:
- 字节码解释: DVM解释字节码,这是一种比本机代码更高层的指令集。
- 基于寄存器: DVM使用寄存器而不是堆栈来存储数据,这可以提高执行速度。
- 多DEX文件: DVM支持多个DEX(Dalvik可执行文件)文件,这可以提高应用程序的模块化和加载时间。
- 垃圾回收: DVM使用垃圾回收器来管理内存,这有助于防止内存泄漏。
ART虚拟机:Dalvik的后继者
Android运行时(ART)虚拟机于Android 4.4(KitKat)中首次引入,作为Dalvik虚拟机的后续版本。ART旨在提高应用程序性能和减少启动时间。它采用了一种称为“提前编译(AOT)”的技术,其中应用程序代码在安装时编译成本机代码。
ART虚拟机的主要特点:
- 提前编译(AOT): ART提前编译字节码成本机代码,这可以显着提高应用程序启动时间和执行速度。
- 优化: ART可以执行优化,例如内联和代码重写,这可以进一步提高性能。
- 并发垃圾回收: ART使用并发垃圾回收器,这可以减少垃圾回收造成的停顿时间。
- 可配置文件: ART支持配置文件,这允许开发人员针对特定设备调整虚拟机设置。
Dalvik与ART的比较
下表总结了Dalvik和ART虚拟机的主要区别:
特性 | Dalvik | ART |
---|---|---|
编译技术 | 字节码解释 | 提前编译(AOT) |
速度 | 较慢 | 更快 |
启动时间 | 较长 | 更短 |
内存使用 | 更低 | 更高 |
优化 | 基本 | 高级 |
Android版本 | Android 1.0-4.3 | Android 4.4及更高版本 |
结论
Dalvik和ART虚拟机在Android应用程序的性能和用户体验中发挥着至关重要的作用。Dalvik虚拟机在Android的早期发展阶段发挥了重要作用,但ART虚拟机提供了更好的性能和更快的启动时间。随着Android平台的不断发展,ART虚拟机有望继续成为Android应用程序执行的领先虚拟机。