Android版本号
Android系统架构
Android的系统架构由四个部分组成,由底层到上层的顺序分别为Linux Kernel、Android Runtime、Libraries、Application Framework,在此基础之上则是我们在使用手机时直接面向的各类APP,见下图
Android系统架构
- Linux Kernel
Android以Linux操作系统内核为基础,借助Linux内核服务实现硬件设备驱动,进程和内存管理,网络协议栈,电源管理,无线通信等核心功能。
Linux Kernel也作为硬件和软件之间的抽象层,它隐藏具体硬件细节而为上层提供统一的服务。
也就是说Android从本质上说也是Linux操作系统的一种,只不过其基于Linux之外对移动端做了更多面向移动的新特性。
- Android Runtime
AndroidRuntime包含核心库和Dalvik虚拟机两部分。
Dalvik虚拟机是基于apache的Java虚拟机,并被改进以适应低内存,低处理器速度的移动设备环境。Dalvik虚拟机依赖于Linux内核,实现进程隔离与线程调试管理,安全和异常管理,垃圾回收等重要功能。
我们知道Java自身提供了JVM的虚拟机,而Android则是使用了类似JVM的DVM作为Java虚拟机。
Android4.4之后ART逐渐取代了Dalvik虚拟机,在Dalvik下,应用每次运行的时候,字节码都需要通过即时编译器(just in time ,JIT)转换为机器码,这会拖慢应用的运行效率,而在ART 环境中,应用在第一次安装的时候,字节码就会预先编译成机器码,使其成为真正的本地应用。这个过程叫做预编译(AOT,Ahead-Of-Time)。这样的话,应用的启动(首次)和执行都会变得更加快速,换句话说ART使用了空间来换取时间,所以在新的ART架构下APP的内存占用比Dalvik大了一倍,替换ART后,app的打开速度接近了iOS。
这也是为什么如今仍存在Android 4.4的版本,因为这个版本是Dalvik到ART的一个大的变革。
- Libraries
Libraries是Android的库文件,供Android系统的各个组件使用。这些功能通过Android的应用程序框架(application framework)为开发者使用。主要的系统类库及说明如下表
Android库
- Application Framework
Application Framework提供开发Android应用程序所需的一系列类库,使开发人员可以进行快速的应用程序开发,方便重用组件,也可以通过继承实现个性化的扩展。具体包括的模块如下
Application Framework
- Application
有了上面四大模块,我们的开发人员就可以在其基础之上开发各种类型的APP了,包括系统内置应用在内,我们每天在使用的各类型的APP都是基于Application Framework层之上开发而来的,现在大家对我们每天使用的软件由何而来应该有了一个初步的认知了吧。