SL4A - Android 架构



Android 软件栈包含不同的层,每一层都表现出明确的行为并为其上层的层提供特定的服务。下图展示了 Android 及其主要组件的广泛架构。

Android Architecture

Linux 内核

Android 基于修改后的 Linux 内核代码构建,该代码针对嵌入式系统而非传统的 Linux 系统。许多常用设备的硬件驱动程序都内置在内核中,从而确保了设备的可移植性。它基于安全的基于用户的权限模型,防止一个应用程序读取另一个应用程序的信息或干扰其执行(例如 CPU、内存、设备等)。

基于组 ID 的对网络和蓝牙功能、日志记录器、警报、电源管理、低内存终止程序、Binder IPC 机制的访问是内核的一些显著增强功能。

库和运行时

这是架构的第二层。它包含一组针对硬件优化的 C、C++ 库,也称为原生层。例如媒体库、SQLite、SSL、Bionic、WebKit 等。

Android 运行时包含两个不同的组件:Dalvik VM 和核心库。Dalvik VM 为 Android 平台上的应用程序提供执行环境。核心库集提供了 Java API 中的大部分功能。

应用程序框架

此层将库作为服务提供给应用程序。此层内的一些最重要的组件包括位置管理器、资源管理器、活动管理器和通知管理器。

应用程序

默认情况下,Android 带有一套丰富的应用程序,包括浏览器、短信程序、日历、联系人管理器、地图等。如果用户需要,Google Play 提供了这些应用程序的替代方案。

构建块

应用程序可以通过四个功能块与系统交互。它们如下所示:

  • 活动 - 活动表示用户看到的或视觉交互的单个屏幕。例如,一个电子邮件应用程序可能有一个活动显示新电子邮件列表,另一个活动用于撰写电子邮件,另一个活动用于阅读电子邮件。

  • 服务 - 这些服务为您应用程序完成大部分处理工作。它是用户界面背后的逻辑。例如,一个服务可以在用户使用其他应用程序时在后台播放音乐,或者它可以在不阻止用户与活动交互的情况下通过网络获取数据。

  • 广播接收器 - 可以注册以侦听系统或应用程序事件并发出相关通知的组件。系统发出的广播的一个实例是“电池电量低通知”,而应用程序级别的广播可能是“下载成功”通知。

  • 内容提供程序 - 内容提供程序管理并帮助您在多个应用程序之间共享数据。例如,内容提供程序可用于共享联系人数据。

这些组件通过称为意图的消息相互交互。

广告