SL4A - Android 架构

Android 软件堆栈由不同的层组成,每层都表现出明确定义的行为并为其上的层提供特定服务。下图展示了 Android 的总体架构及其主要组件。

Android 架构

Linux 内核

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

基于组 ID 访问网络和蓝牙功能、记录器、警报、电源管理、低内存杀手、Binder IPC 机制是内核的一些值得注意的增强功能。

库和运行时

这构成了架构的第二层。它包括一组硬件优化的 C、C++ 库,也称为本机层。示例包括媒体库、SQLite、SSL、Bionic、WebKit 等。

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

应用程序框架

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

应用程序

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

构建块

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

  • 活动 − 活动代表用户可看到或与之交互的单个屏幕。例如,电子邮件应用可能有一个活动显示新电子邮件列表,另一个活动用于撰写电子邮件,还有一个活动用于阅读电子邮件。

  • 服务 − 这些服务为您的应用完成了大部分处理。它是用户界面背后的逻辑。例如,当用户使用其他应用时,服务可能会在后台播放音乐,或者它可能会通过网络获取数据而不阻止用户与活动的交互。

  • 广播接收器 − 可以注册以监听系统或应用事件并发出有关相同事件的通知的组件。来自系统的广播实例是"电池电量低通知",而应用级广播可能是"下载成功"通知。

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

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