《Android群英传》笔记1——Android系统架构

Android 系统架构

 本文是读了《Android 群英传》第一章--Android体系和系统架构调用栈--之后的读书笔记,感谢作者,在此特别推荐此书


       Android作为一个移动操作系统,研发初期即被Google收购。靠着Google这棵大树,加上其开源的特性,因而发展十分迅速。

  这是一张常见的Android系统机构图,由此可见Android的系统架构一共有四层,分别是Linux内核层、库和运行时层、应用框架层以及应用层。

《Android群英传》笔记1——Android系统架构

 

1、Linux内核层

       Linux内核层是Android系统里最底最核心的层,我们的手机或者平板里点击设置就可以看到其系统的内核版本。它是用C语言编写,主要包含Android设备的硬件驱动、安全系统和进程管理等。

 

2、库和运行时层

  库指的是标准库,是一个C/C++的库的集合,供Android系统各个组件使用,Android开发者可以通过应用框架层使用的其功能。

  运行时包含了核心库、DVMART

  核心库是提供基本的Java类库的功能,让Android的应用程序可以采用Java语言进行编写;

      DVM全称是Dalvik Virtual Machine,即Dalvik虚拟机,它包含了一整套Android运行环境,所有安卓程序都运行在安卓系统进程里,每个进程对应着一个Dalvik虚拟机实例。它们都提供了对象生命周期管理、堆栈管理、线程管理、安全和异常管理以及垃圾回收等重要功能,各自拥有一套完整的指令系统。DVMJVM类似,但是它的可执行文件更小;

      ART全称是Android runtime,在Android 4.4版本首次发布,并在Android 5.0版本之后取代了DVM。其采用了AOTAhead Of Time)预编译技术,即在编译时候就将程序编译成机器码,运行时候直接执行本地机器码,比起DVM少了一步再编译,效率更高,启动更快,当然所需存储空间也更大。

  一个形象的比喻就是一个程序就是一堆自行车零件,DVM在编译时候是将零件组装成一辆折叠自行车,组装时间较短,占用空间较小,但是运行时候就得先将自行车打开才能骑;而ART则是直接将零件组装成一辆正常的自行车,组装时间较长,占用空间较大,但是运行时候可以直接骑走。

 

3、应用框架层

  应用框架层是将Android里的库发布成一个个的功能块,比如视图(View System)、内容提供器(Content Provider)、资源管理器(Resource Manager)、活动管理器(Activity Manager)等,可以供开发者直接使用,并且能在不同的程序里进行复用。

 

4、应用层

  应用层就是包含了Android系统里的各个应用程序,这些程序都是开发者用sdk或者ndk等开发工具包,用Java语言进行编写的,最直接的通过设备和用户进行联系。

 

  总的来说Android的系统架构是用应用框架层起到一个承上启下的作用,让应用的各个组件之间解耦,并通过框架来进行统一的管理、调度。