安卓(Android)系统架构

Android 操作系统是一个软件组件堆栈,大致分为五个部分和四个主要层,如架构图所示。


Linux 内核

安卓系统最底层是 Linux-Linux3.6,有大约 115 个补丁。这在设备硬件之间提供了一个抽象级别,它包含了所有必要的硬件驱动程序,如相机、键盘、显示器等。此外,内核处理 Linux 真正擅长的所有事情,如网络和大量设备驱动程序,这些都可以解决与外围硬件接口的麻烦。


在 Linux 内核之上有一组库,包括开源 Web 浏览器引擎 WebKit、著名的库 libc、SQLite 数据库(用于存储和共享应用程序数据)、播放和录制音频和视频的库、负责 Internet 安全的 SSL 库等。


Android 库

此类别包括那些特定于 Android 开发的基于 Java 的库。此类库的示例包括应用程序框架库,以及那些便于用户界面构建、图形绘制和数据库访问的库。Android 开发人员可用的一些关键核心 Android 库摘要如下:

  • android.app - 提供对应用程序模型的访问,是所有 Android 应用程序的基石。
  • android.content - 方便了应用程序和应用程序组件之间的内容访问、发布和消息传递。
  • android.database - 用于访问内容提供者发布的数据,包括 SQLite 数据库管理类。
  • android.opengl - OpenGL ES 3D 图形渲染 API 的 Java 接口。
  • android.os - 为应用程序提供对标准操作系统服务的访问,包括消息、系统服务和进程间通信。
  • android.text - 用于在设备显示器上呈现和操作文本。
  • android.view - 应用程序用户界面的基本构建块。
  • android.widget - 丰富的预构建用户界面组件集合,例如按钮、标签、列表视图、布局管理器、单选按钮等。
  • android.webkit - 一组类,用于将 web 浏览功能内置到应用程序中。

在介绍了 Android 运行时中基于 Java 的核心库之后,现在是时候将注意力转向 Android 软件堆栈这一层中包含的基于 C/C++ 的库了。


Android 运行时

这是体系结构的第三部分,位于底部的第二层。本节提供了一个名为 Dalvik Virtual Machine 的关键组件,它是一种专门为 Android 设计和优化的 Java 虚拟机。

Dalvik VM 利用了 Linux 的核心特性,如内存管理和多线程,这是 Java 语言的固有特性。 Dalvik 虚拟机使每个 Android 应用程序都能在自己的进程中运行,并拥有自己的 Dalvick 虚拟机实例。

Android 运行时还提供了一组核心库,使 Android 应用程序开发人员能够使用标准 Java 编程语言编写 Android 应用。


应用程序框架

应用程序框架层以 Java 类的形式向应用程序提供许多高级服务。应用程序开发人员可以在其应用程序中使用这些服务。

Android 框架包括以下关键服务:

  • 活动管理器 - 控制应用程序生命周期和活动堆栈的所有方面。
  • 内容提供器 - 支持应用程序发布数据并与其他应用程序共享数据。
  • 资源管理器- 提供对非代码嵌入资源(如字符串、颜色设置和用户界面布局)的访问。
  • 通知管理器 - 让应用程序可以向用户显示警报和通知。
  • 视图系统 - 用于创建应用程序用户界面的可扩展视图集。

应用程序

您将在顶层找到所有 Android 应用程序。您将编写仅安装在此层上的应用程序。例如通讯录、浏览器、游戏等。