Android 系统架构

Android 基于 Linux 开放源代码开发,系统架构图如下。

Android 平台架构图

Linux 内核

Android 基础,Android 运行时依靠 Linux 执行底层功能,例如线程和内存管理。

硬件抽象层(HAL)

硬件抽象层 (HAL)arrow-up-right 提供标准接口,向更高级别的 Java API 框架显示设备硬件功能。HAL 包含多个库模块,其中每个模块都为特定类型的硬件组件实现一个接口,例如相机或蓝牙模块。当框架 API 要求访问设备硬件时,Android 系统将为该硬件组件加载库模块。

Android 运行时

对于运行 Android 5.0(API 级别 21)或更高版本的设备,每个应用都在其自己的进程中运行,并且有其自己的 Android Runtime (ART)arrow-up-right 实例。ART 执行DEX文件,DEX文件是专为Android平台设计的字节码格式,经过优化,使用的内存很小。

在5.0以前,Android Runtime是 Dalvik。

Android 还包含一套核心运行时库,可提供 Java API 框架所使用的 Java 编程语言中的大部分功能,包括一些 Java 8 语言功能arrow-up-right

原生C/C++库

许多核心 Android 系统组件和服务(例如 ART 和 HAL)使用 C 和 C++ 编写的原生库构建。Android 平台提供 Java 框架 API 以向应用显示其中部分原生库的功能。例如,您可以通过 Android 框架的 Java OpenGL APIarrow-up-right 访问 OpenGL ESarrow-up-right,以支持在应用中绘制和操作 2D 和 3D 图形。

如果开发的是需要 C 或 C++ 代码的应用,可以使用 Android NDKarrow-up-right 直接从原生代码访问某些原生平台库arrow-up-right

Java API 框架

Android 系统 Java API,可简化核心模块化系统组件和服务的重复使用,包括以下组件和服务:

系统应用

系统预装的核心 App。比如相机、短信、电话、浏览器等。

最后更新于