
1.2 Android软件架构介绍
Android的软件架构采用了分层结构,如图1-1所示,由上至下分别为Application(应用层)、Application Framework(应用框架层)、Android Runtime &Libraries(运行时库和本地库层)、Linux Kernel(内核层),如图1-1所示。

图1-1 Android软件架构图
(1)Application(应用层):用户安装应用程序及系统自带应用程序层,主要用来与用户进行交互,如Home指Android手机的桌面,Phone指电话应用,用来拨打电话等。
(2)Application Framework应用框架层:系统框架层,封装了大量应用程序所使用的类,从而达到组件重用的目的,它主要向上层应用层提供API,如ActivityManager主要用于管理所有的Activity画面导航、回退等与生命周期相关的操作,PackageManager主要用来管理程序安装包的安装、更新、删除等操作。
(3)Android Runtime &Libraries(运行时库和本地库层):Runtime是Android的运行环境,在该层有Dalvik Virtual Machine(Android的虚拟机简称DVM)的实现,在DVM中运行着Java的核心语言库代码和Java程序。同时,在DVM运行期间要调用系统库代码,如负责显示的SurfaceManager本地代码,负责多媒体处理相关的Media Frameworks代码及C库libc等。
(4)Linux Kernel内核层:Android系统是基于Linux系统的,所以Android底层系统相关的框架和标准的Linux内核没有什么很大的区别,只不过添加了几个Android系统运行必备的驱动,如:Binder IPC进程间通信驱动、Power Manager电源管理驱动等。
总结:Android的软件架构是学习Android开发必须要掌握的知识点,它对我们将来编写Android应用程序,理解Android框架代码,编写本地代码,修改底层驱动都有重要的指导意义,可谓学习Android的灵魂。