📜  SL4A-Android体系结构

📅  最后修改于: 2020-12-07 04:56:43             🧑  作者: Mango


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

Android架构

Linux内核

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

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

库和运行时

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

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

应用框架

该层使库作为应用程序的服务可用。该层中一些最重要的组件包括位置管理器,资源管理器,活动管理器和通知管理器。

应用领域

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

建筑模块

应用程序可以通过四个函数块与系统接口。它们如下-

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

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

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

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

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