返回
Android 系统架构与运行时:五层架构、Dalvik 与 ART
Android
2024-01-10 10:57:31
Android 的五层架构和 Dalvik 与 ART 的异同
Android 系统凭借其开放性、灵活性以及庞大的开发者社区,在移动操作系统市场傲视群雄。其精妙的五层架构和两种运行时环境(Dalvik 和 ART)共同为 Android 的成功奠定了基石。
Android 五层架构
Android 系统采用了一套分层架构,每一层负责特定的功能,共同构建了一个高效稳定的操作系统。
- Linux 内核: 这是 Android 的核心,负责处理与硬件的交互、内存管理和进程调度等底层任务。
- 硬件抽象层 (HAL): HAL 充当了 Linux 内核和设备硬件之间的桥梁,提供了一个与硬件无关的访问接口。
- Android 运行时 (ART): ART 是一款专为 Android 系统开发的 Java 虚拟机 (JVM),负责编译和执行 Dalvik 可执行文件 (DEX)。
- 应用程序框架: 应用程序框架包含了一系列 API 和服务,例如活动管理、内容提供程序和通知管理,极大地简化了应用程序的开发流程。
- 应用程序: 应用程序由第三方开发者开发,为用户提供各种功能和服务。
Dalvik 与 ART
Dalvik:
- Dalvik 是在 Android 2.2 之前使用的 Java 虚拟机,专门针对移动设备有限的内存和处理能力而设计。
- 它执行基于寄存器的字节码,称为 Dalvik 字节码(DEX)。
- Dalvik 采用即时(just-in-time)编译器,在应用程序运行时将 DEX 文件编译为机器码。
ART:
- ART 是从 Android 4.4 开始引入的 Java 虚拟机,它比 Dalvik 提供了更快的性能和更小的内存占用。
- 它采用预先(ahead-of-time)编译器,在应用程序安装时将 DEX 文件编译为机器码。
- ART 对垃圾回收和内存管理进行了优化,从而提高了应用程序的稳定性和响应能力。
Dalvik 和 ART 的对比
特征 | Dalvik | ART |
---|---|---|
编译时间 | 即时 (JIT) | 预先 (AOT) |
性能 | 较慢 | 更快 |
内存占用 | 较大 | 较小 |
稳定性 | 较差 | 更稳定 |
为什么 Google 取消了对 Dalvik 的支持?
在 Android 8.0 中,Google 取消了对 Dalvik 的支持,原因可能如下:
- 提升性能: ART 的预先编译技术极大地提高了应用程序的启动时间和整体性能。
- 降低内存占用: ART 编译后的机器码比 Dalvik 的即时编译码更紧凑,从而降低了内存占用。
- 增强稳定性: ART 的垃圾回收和内存管理优化有助于减少应用程序崩溃和提高稳定性。
常见问题解答
-
Dalvik 和 ART 的主要区别是什么?
Dalvik 采用即时编译,而 ART 采用预先编译。ART 提供了更快的性能、更小的内存占用和更高的稳定性。 -
ART 为什么更快?
ART 在应用程序安装时预先编译 DEX 文件,消除了 Dalvik 即时编译带来的开销,从而显著提高了应用程序启动时间和整体性能。 -
ART 占用更少的内存吗?
是的,ART 编译后的机器码比 Dalvik 的即时编译码更紧凑,从而减少了内存占用。 -
ART 是否更稳定?
是的,ART 的垃圾回收和内存管理优化有助于减少应用程序崩溃和提高稳定性。 -
为什么 Google 取消了对 Dalvik 的支持?
Google 取消了对 Dalvik 的支持,因为 ART 提供了更好的性能、更小的内存占用和更高的稳定性,这些都是现代移动应用程序至关重要的因素。