一.应用程序层:此层为Application层,包括邮件客户端、SMS程序、日历、地图、浏览器、联系人和其他设置。
全部是由java编写
二.应用程序框架层:Application Framework层,开发者可以完全的使用全部的框架API,所有的应用程序其实是
一组服务和系统:
- 活动管理器(
ActivityManager
)——管理应用程序生命周期,提供通用的导航回退功能 - 窗口管理层(Windows Manager)——管理所有的窗口程序
- 内容提供者(Content Providers)——使应用程序能访问其他应用程序(如通讯录)的数据,或共享自己的数据
- 视图(View)——丰富的、可扩展的视图集合,可用于构建一个应用程序。包括包括列表、网格、文本框、按钮,甚至是内嵌的网页浏览器
- 通知管理器(
NotificationManager
)——使所有的应用程序能够在状态栏显示自定义警告 - 包管理(Package Manager)——系统内程序管理
- 电话管理器(Telephone Manager)——管理所有移动设备
- 资源管理器(Resource Manager)——提供访问非代码资源,如本地化字符串、图形和布局文件
- 位置管理器(Location Manager)——提供位置服务
- XMPP服务(XMPP Service)——提供Google Talk服务
三.系统运行库:Libraries层,包含一个C/C++库,供Android系统的各个组件使用。
- 系统C库——标准C系统库(libc)的BSD衍生,调整为基于嵌入式Linux设备
- 媒体库——基于PacketVideo的OpenCORE。这些库支持播放和录制许多流行的音频和视频格式,以及静态图像文件,包括MPEG4、 H.264、 MP3、 AAC、 AMR、JPG、 PNG
- 界面管理——管理访问显示子系统和无缝组合多个应用程序的二维和三维图形层
- LibWebCore——新式的Web浏览器引擎,驱动Android 浏览器和内嵌的web视图
- SGL——基本的2D图形引擎
- 3D库——基于OpenGL ES 1.0 APIs的实现。库使用硬件3D加速或包含高度优化的3D软件光栅
- FreeType ——位图和矢量字体渲染
- SQLite ——所有应用程序都可以使用的强大而轻量级的关系数据库引擎
四.Linux系统内核层:
Android基于Linux 2.6提供核心系统服务,例如:安全、内存管理、进程管理、网络堆栈、驱动模型。Linux Kernel也作为硬件和软件之间的抽象层,它隐藏具体硬件细节而为上层提供统一的服务。