(1)应用程序层
home, Contracts, Phone, Browser等等(2)应用框架层
这一层其实就是隐藏在每个应用后面的是一系列的服务和系统。应用框架层为应用开发者提供了用以访问核心功能的API框架.在遵循框架安全性限制的前提下,任何一个应用都可以调用这些核心功能 API来发布自己的功能组件.应用框架层提供了各种服务和管理工具,包括了应用开发所需的界面管理、数据访问、应用层的消息传递、应用包的管理、电话管理、定位管理以及 Google Talk服务等功能。
<1>Activity Manager:
用来管理应用程序生命周期并提供常用的导航回退功能
<2>Notification Manager:
使得应用程序可以在状态栏中显示自定义的提示信息
<3>Resource Manager:
提供 非代码资源的访问,如本地字符串,图形,和布局文件( layout files )。
<4>Content Providers:
使得应用程序可以访问另一个应用程序的数据(如联系人数据库), 或者共享它们自己的数据
<5>Views:
可以用来构建应用程序, 它包括列表(lists),网格(grids),文本框(text boxes),按钮(buttons), 甚至可嵌入的web浏览器。
<6>Window Manager:
对 Window 的访问必须通过 WindowManager。WindowManager 提供的三个接口方法 addView、updateViewLayout 以及 removeView
<7>View System:
测量各个UI元素的尺寸, 确定各个UI的位置, 内容发生变化时重绘, 接收事件、分配事件, 处理来自wms的很多和窗口状态有关的回调
<8> PackageManager:
管理应用程序包,通过它可以获取应用程序信息。
<9>TelephoneManager:
获取手机相关信息, 比如:手机IMEI号, IMSI, 手机号, 手机型号, sdk版本等等
<10>LocationManager
位置相关功能, 比如获取经纬度
<11>XMPPManager
即时通讯相关功能
3.系统运行库层(Native)
系统运行库层分为两部分,分别是C/C++程序库和Android运行时库。下面分别来介绍它们。1.C/C++程序库
C/C++程序库能被Android系统中的不同组件所使用,并通过应用程序框架为开发者提供服务,主要的C/C++程序库如下表2所示。名称 功能描述
OpenGL ES 3D绘图函数库
Libc 从BSD继承来的标准C系统函数库,专门为基于嵌入式Linux的设备定制
Media Framework 多媒体库,支持多种常用的音频、视频格式录制和回放。
SQLite 轻型的关系型数据库引擎
SGL 底层的2D图形渲染引擎
SSL 安全套接层,是为网络通信提供安全及数据完整性的一种安全协议
FreeType 可移植的字体引擎,它提供统一的接口来访问多种字体格式文件
表2