SL4A - Android 架构


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

安卓架构

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 可以提供这些应用程序的替代品。

建筑模块

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

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

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

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

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

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