Android操作系统是一堆软件组件,大致分为五个部分,四个主要的层次,如下图所示。
Linux内核
底层是Linux - Linux 3.6,大约有115个补丁。 这提供了设备硬件之间的抽象级别,它包含了所有必要的硬件驱动程序,如相机,键盘,显示器等。此外,内核还处理Linux真正擅长的所有事情,例如网络连接和大量设备驱动程序 ,这消除了与外设硬件接口的痛苦。
类库
在Linux内核之上,有一套库,包括开源Web浏览器引擎WebKit,众所周知的库libc,SQLite数据库,它是存储和共享应用程序数据的有用存储库,播放和记录音频和视频的库,SSL 负责互联网安全的类库。
Android库
这个类别包含那些特定于Android开发的基于Java的库。 此类库中的示例包括除了便于用户界面构建,图形绘制和数据库访问的应用程序框架库之外的应用程序框架库。 Android开发人员可以使用的一些关键核心Android库的总结如下 -
android.app - 提供对应用程序模型的访问,是所有Android应用程序的基石。
android.content - 便于应用程序和应用程序组件之间的内容访问,发布和消息传递。
android.database - 用于访问内容提供者发布的数据,包括SQLite数据库管理类。
android.opengl - OpenGL ES 3D图形渲染API的Java接口。
android.os - 为应用程序提供对标准操作系统服务的访问,包括消息,系统服务和进程间通信。
android.text - 用于渲染和操纵设备显示器上的文本。
android.view - 应用程序用户界面的基本构建块。
android.widget - 丰富的预建用户界面组件,如按钮,标签,列表视图,布局管理器,单选按钮等。
android.webkit - 一组旨在允许将web浏览功能内置到应用程序中的类。
在Android运行时覆盖了基于Java的核心库之后,现在是把注意力转向Android软件栈这一层包含的基于C/C++的库。
Android运行时
这是架构的第三部分,可以从底部的第二层获得。 本节提供了一个名为Dalvik虚拟机 的关键组件,它是一种专为Android设计和优化的Java虚拟机。
Dalvik VM利用Linux内核特性,如内存管理和多线程,这在Java语言中是固有的。 Dalvik虚拟机使每个Android应用程序都能在自己的进程中运行,并拥有自己的Dalvik虚拟机实例。
Android运行时还提供了一组核心库,使Android应用程序开发人员可以使用标准Java编程语言编写Android应用程序。
应用框架
应用程序框架层以Java类的形式向应用程序提供了许多更高级别的服务。 应用程序开发人员可以在他们的应用程序中使用这些服务。
Android框架包含以下关键服务 -
活动管理器 - 控制应用程序生命周期和活动堆栈的所有方面。
内容提供者 - 允许应用程序发布和与其他应用程序共享数据。
资源管理器 - 提供对非代码嵌入式资源(如字符串,颜色设置和用户界面布局)的访问。
通知管理器 - 允许应用程序向用户显示警报和通知。
视图系统 - 用于创建应用程序用户界面的一组可扩展的视图。
应用程序
在顶层是所有的Android应用程序。编写的应用程序来安装在这个图层上。 这样的应用程序的例子是联系人,浏览器,游戏等。