安卓的四层架构
安卓系统有着四层架构,分别为:
- 应用层 Applications
- 应用框架层 Application Framework
- 类库层
- 系统内核层 Linux Kernel
应用层 Applications
应用层由运行在Android设备上的所有应用构成,包括预装的系统应用和自己安装的第三方应用。
所有安装在手机上的应用程序都是属于这一层的,比如我们日常安装到手机上面的软件,又或者是我们自己开发的程序都是属于这一层。
应用框架层 Application Framework
主要提供了构建应用程序时可能用到的各种API,Android自带的一些核心应用就是使用这些API完成的,开发者也可以通过使用这些API来构建自己的应用程序。
类库层
这一层主要由类库(Libraries)和Android运行时(Android Runtime)两部分组成。
类库(Libraries)
类库(Libraries)由一系列的二进制动态库构成,大部分来源于优秀的第三方类库,另一部分是系统原生类库,通常使用c/c++语言开发。(因为java代码无法直接调用c/c++驱动代码,所以在这一层,系统通过封装了一系列的函数库供上层使用)
Android运行时(Android Runtime)
Android运行时(Android Runtime)是由Java核心类库(Core Libraries)和**Android虚拟机(Dalvik)**共同构成。
关于Dalvik:
- Dalvik是为Android量身打造的Java虚拟机,它与标准Java虚拟机JVM的差别在于Dalvik是基于寄存器设计的,而JVM是基于栈结构设计的;JVM通过解码class文件(java编译生成的:.java—.class 的class文件)中的内容来运行程序;而Dalvik运行时是由java字节码文件进一步转化而来的文件,并被打包成一个.dex可执行文件,Dalvik虚拟机通过解释.dex文件来执行这些字节码 ,即android的class 文件实际上只是编译过程中的中间目标文件,需要变成.dex文件后才能在dalvik 上运行;Dalvik能够更快的编译较大的应用程序,允许在有限的内存空间中同时运行多个虚拟机的实例,每一个Dalvik应用作为一个独立的Linux进程执行,这样可以防止某一虚拟机崩溃时所有的应用都被关闭。
系统内核层 Linux Kernel
Android系统是基于Linux内核的,这一层为Android设备的各种硬件提供了底层的驱动,如显示驱动、音频驱动、照相机驱动、蓝牙驱动、Wi-Fi驱动、电源管理等。