一、Android系统架构
Android大致可以分为四层架构:Linux内核层、系统运行库层、应用框架层和应用层。
1 Linux内核层
- Android系统是基于Linux内核的,这一层Android设备的各种硬件提供了底层的驱动,如显示驱动、音频驱动、照相机驱动、蓝牙驱动、Wi-Fi驱动、电源管理等。
2 系统运行库层
- 这一层通过一些C/C++库来为Android系统提供了主要的特性支持。如SQLite库通过了数据库的支持,OpneGL/ES库提供了3D绘图的支持,Webkit库提供了浏览器的内核支持等。
- 在这一层还有Android运行时库,它主要提供了一些核心库,能允许开发者使用Java语言来编写Android应用。另外,Android运行时库还包含了Dalvik虚拟机(5.0系统之后改为ART运行环境),它使得每一个Android应用都能运行在独立的进程当中,并且拥有一个自己的Dalvik虚拟实例。相较于Java虚拟机,Dalvik是专门为移动设备定制的,它针对手机内存、CPU性能有限等情况做了优化处理。
3 应用框架层
- 主要提供构建应用程序时可能用到的各种API,Android自带一些核心应用就是使用这些API来完成的,开发者也可以通过 这些API来构建自己的应用程序。
4 应用层
- 所有安装在手机上的应用程序都是属于这一层,比如系统自带的联系人,短信等程序,或者你下载的小游戏,和程序。
总结:Android分为四个层,从低到高分别是linux核心层、系统运行库层、应用程序框架层和应用程序层。在最底层,Android使用了Linux内核,从而能够利用起Linux已有的丰富的硬件支持(当然Android由于版权原因在Linux内核之上使用了完全不同的架构,现在已经被从Linux状态树上移出,算是完全脱离正式的Linux系统了)。在Linux内核之上,Android选择使用Java进行各项API的开发,因此制作了适宜移动端使用的Dalvik虚拟机(现在已被更快的ART所取代),从而向上提供系统运行库。再往上则是丰富的应用程序框架层,最上层则是丰富的应用程序;利用Java跨平台的性质,基于Android框架开发的应用程序可以不用编译运行于任何一台安装有android系统的平台,这可以说是Android的精髓所在。