返回

Android 系统架构与运行时:五层架构、Dalvik 与 ART

Android

Android 的五层架构和 Dalvik 与 ART 的异同

Android 系统凭借其开放性、灵活性以及庞大的开发者社区,在移动操作系统市场傲视群雄。其精妙的五层架构和两种运行时环境(Dalvik 和 ART)共同为 Android 的成功奠定了基石。

Android 五层架构

Android 系统采用了一套分层架构,每一层负责特定的功能,共同构建了一个高效稳定的操作系统。

  1. Linux 内核: 这是 Android 的核心,负责处理与硬件的交互、内存管理和进程调度等底层任务。
  2. 硬件抽象层 (HAL): HAL 充当了 Linux 内核和设备硬件之间的桥梁,提供了一个与硬件无关的访问接口。
  3. Android 运行时 (ART): ART 是一款专为 Android 系统开发的 Java 虚拟机 (JVM),负责编译和执行 Dalvik 可执行文件 (DEX)。
  4. 应用程序框架: 应用程序框架包含了一系列 API 和服务,例如活动管理、内容提供程序和通知管理,极大地简化了应用程序的开发流程。
  5. 应用程序: 应用程序由第三方开发者开发,为用户提供各种功能和服务。

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 的垃圾回收和内存管理优化有助于减少应用程序崩溃和提高稳定性。

常见问题解答

  1. Dalvik 和 ART 的主要区别是什么?
    Dalvik 采用即时编译,而 ART 采用预先编译。ART 提供了更快的性能、更小的内存占用和更高的稳定性。

  2. ART 为什么更快?
    ART 在应用程序安装时预先编译 DEX 文件,消除了 Dalvik 即时编译带来的开销,从而显著提高了应用程序启动时间和整体性能。

  3. ART 占用更少的内存吗?
    是的,ART 编译后的机器码比 Dalvik 的即时编译码更紧凑,从而减少了内存占用。

  4. ART 是否更稳定?
    是的,ART 的垃圾回收和内存管理优化有助于减少应用程序崩溃和提高稳定性。

  5. 为什么 Google 取消了对 Dalvik 的支持?
    Google 取消了对 Dalvik 的支持,因为 ART 提供了更好的性能、更小的内存占用和更高的稳定性,这些都是现代移动应用程序至关重要的因素。