2.2 Android平台架构

Android平台由很多不同的组件构成,包括一些系统应用(如通信录),一组API以及大量支持文件和库,这些API可以帮助用户控制应用的外观和行为。这里只对Android平台做简单的介绍,后续章节会对Android平台包含的组件做详细解释。平台如图2-1所示,包括以下几部分。

图2-1 Android软件栈

1)系统应用(System Apps):Android提供了一组核心应用,如电话、电子邮件、相机、日历等。

2)应用框架(Java API Framework):用户构建应用时可以使用这些系统应用所使用的框架API,这些API使用Java语言编写,包括以下组件和服务。

①丰富、可扩展的视图系统,可用以构建应用的UI,包括按钮、列表、文本框,甚至可嵌入的网络浏览器。

②资源管理器,用于访问非代码资源,如本地化的字符串、图形和布局文件。

③通知管理器,可让所有应用在状态栏中显示自定义提醒。

④Activity管理器,用于管理应用的生命周期,提供常见的导航返回栈。

⑤内容提供者,可让应用访问其他应用(如“联系人”应用)中的数据或者共享其自己的数据。

3)库(Native C/C++Libraries):应用框架底层有一组C和C++编写的原生库,可以通过框架API访问这些库。如果开发的是需要C或C++代码的应用,可以使用Android NDK直接从原生代码访问某些原生平台库。

4)Android运行时环境:Android运行时环境提供了一组核心库,实现了Java编程语言的大部分功能。所有Android应用都在自己单独的进程中运行。

5)硬件抽象层(Hardware Abstraction Layer):对硬件设备的抽象和封装,为Android在不同硬件设备上提供统一的访问接口。

6)Linux内核(Kernel):最底层的是Linux内核,Android平台的基础是Linux内核,Android依赖这个内核提供驱动以及核心服务(如安全和内存管理)。