天天看点

为什么Android5.0系统之后的应用都会比之前的启动要快?

首先看一下Android系统的层次架构

层次 描述
应用层(Systeml Apps) 系统内置的和非系统级的应用程序都在这一层,都是用Java语言编写的,负责与用户进行直接交互。
应用框架层(Java API Framework) 为开发应用层的程序提供了所需要的API,这一层也是用Java语言编写的
系统运行库层(Native):(1)C/C++程序库 (2)Android运行时库 C/C++程序库通过应用构架层向应用层的程序提供服务,换言之,应用层要通过应用框架层来调用C/C++程序库的服务;Android运行时库请看下文的介绍
硬件抽象层(HAL) 这一层是位于操作系统内核与硬件电路之间的接口层
Linux内核层(Linux Kernel) Android的核心系统服务基于Linux内核,在此基础上添加了部分Android专用的驱动。系统的安全性、内存管理、进程管理、网络协议栈、驱动模型都依赖于该内核

了解android系统架构的基本情况后,我们现在来回答文章的主题。

Android5.0系统之后,Android运行时库有了很大的变化,这一点变化让应用程序的启动变得更快了。我们来看看Android运行时库到底改变了什么?

android 运行时库又分为核心库和虚拟机部分。核心库主要提供了Java语言核心库的大多数功能,正因为有核心库的存在,所以开发者才可以使用Java语言编写Android应用程序。虚拟机部分则在Android 5.0系统之后,由Dalvik换成了ART,这是运行效率得到提高的生要原因。

与JVM相比,Dalvik虚拟机是专门为移动设备定制的。它允许在有限的内存中同时运行多个虚拟机实例,并且是每个Dalvik应用作为一个独立的Linux进程执行。所以独立的进程可以防止在虚拟机崩溃时,所有程序也跟着被关闭的情况发生。所以你现在应该明白,你的android应用程序出现崩溃后,其他的应用程序还在正常运行的原因了吧。