Android是Google开发的一款基于Linux平台的开源手机操作系统。包括操作系统、用户界面和应用程序——移动电话工作所需的全部软件。以WebKit浏览器作为引擎,具备触摸屏、图形显示、上网功能,用户能够在手机上查看邮件、搜索网址、观看视频节目等。这里我们来介绍一下Android的系统架构。
Android系统架构采用分层的模式。从架构图上看,Android分为四个层,从高层到底层分别是应用程序层、应用程序框架层、系统运行库层和Linux内核层。
1.应用程序层。
Android会同一系列核心应用程序包一起发布,该应用程序包包括email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用Java语言编写的。
2.应用程序框架层。
开发人员也可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用,任何一个应用程序都可以发布它的功能块(但是需要遵循框架的安全性限制)。应用程序重用机制也使用户可以方便的替换程序组件。
3.系统运行库层。
(1)程序库
Android包含一些C/C++库,这些库能被Android系统中不同的组件使用。他们通过Android应用程序框架为开发者提供服务。
(2)运行库
Android包括了一个核心库,该核心库提供了Java编程语言核心库的大多数功能。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik被设计成一个设备可以同时高效的运行多个虚拟系统。Dalvik虚拟机执行(.dex)的Dalvik可执行文件,改格式文件针对小内存使用做了优化。同事虚拟机是基于寄存器的,所有的类都经由Java编译器编译,然后通过SDK中的“dx”工具转化成.dex格式由虚拟机执行。
Dalvik虚拟机依赖于linux内核的一些功能,比如线程机制和底层内存管理机制。
4.Linux内核层。
Android的核心系统服务依赖于Linux2.6内核,如安全性,内存管理,进程管理,网络协议和驱动模型。Linux内核也同时作为硬件和软件栈之间的抽象层。