一、Android系统架构(Android大致可以分为四大架构,五块区域)(Linux内核层、系统运行库层,应用框架层、应用层)
1. Linux内核层
Android系统是基于Linux2.6内核的,这一层为Android提供设备的各种硬件提供了底层驱动;
如显示驱动、音频驱动、照相机驱动、蓝牙驱动、WiFi驱动、电源管理等;
2. 系统运行库层
这一层为通过一些C/C++库来为Android系统提供了主要的特性支持,如SQLite库提供了数据库的支持,OpenGL|ES库提供了3D绘图的支持,WebKit库提供了浏览器内核的支持等;
同样在这一层还有Android运行时库,他提供了一些核心库,能够允许使用Java语言来编写Android应用,另外Android运行时库中还包含了Dalvik虚拟机,他使得每一个Android应用都能运行在独立的进程当中,并拥有自己的Dalvik虚拟机实例,相较于Java虚拟机,Dalvik虚拟机是专门为移动设备定制的,它针对手机的内存和CUP性能有限等情况作了优化;
Surface Manager: 对显示子系统的管理,并且为多个应用程序提供了2D和3D图层的无缝融合。
Media FrameWork:基于PacketVideo OpenCORE,该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件,支持的格式有MPEG4、H.264、MP4、MP3、AAC、AMR、JPG、PNG。
SGL:底层的2D图形引擎。
SQLite:轻型关系型数据库引擎。
WebKit:一套网页浏览器的软件引擎。
FreeType:位图(bitmap)和矢量(vector)字体显示。
libC:一个从BSD继承来的标准的C系统函数库(libc),它专门为基于embedded Linux的设备定制的。
SSL:在Android上通信过程中实现握手。
LibWebCore:一个最新的web浏览器引擎,支持Android浏览器和一个可嵌入的web视图。
3. 应用框架层
这一层主要提供了构建应用时可能用到的各种API,开发者通过这些API来构建自己的引用程序;
Activity Manager(活动管理器):管理各个应用程序生命周期以及通常的导航回退功能。
Windows Manager(窗口管理器):管理所有窗口程序。
Content Provider (内容提供器):使得不同应用程序之间存取或分享数据。
View System(视图系统):构建应用程序的基本组件。
Notification Manager(通告管理器):使得应用程序可以在状态栏中显示自定义的提示信息。
Package Manager(包管理器):Android系统内的程序管理器。
Telephony Manager(电话管理器):管理所有的移动设备功能。
Resource Manager(资源管理器):提供应用程序使用的各种非代码资源,如本地化字符串、图片、颜色文件等。
Location Manager(位置管理器):提供位置服务。
XMPP Service(XMPP服务):提供Google Talk服务。
4. 应用层
所有安装的在手机上的应用就属于这一层;