本文主要是介绍ART Dalvik 区别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Android面试一天一题(Day 27:ART & Dalvik)
Android中的ART和Dalvik对比
ART代表Android Runtime,其处理应用程序执行的方式完全不同于Dalvik,Dalvik是依靠一个Just-In-Time (JIT,即时编译)编译器去解释字节码。开发者编译后的应用代码需要通过一个解释器在用户的设备上运行,这一机制并不高效,但让应用能更容易在不同硬件和架构上运行。ART则完全改变了这套做法,在应用安装时就【预编译】字节码到机器语言,这一机制叫Ahead-Of-Time (AOT)编译。在移除解释代码这一过程后,应用程序执行将更有效率,启动更快。
在Dalvik下,应用每次运行都需要通过即时编译器(JIT)将字节码转换为机器码,即每次都要编译加运行,这虽然会使安装过程比较快,但是会拖慢应用以后每次启动的效率。而在ART 环境中,应用在第一次安装的时候,字节码就会预编译(AOT)成机器码,这样的话,虽然设备和应用的首次启动(安装慢了)会变慢,但是以后每次启动执行的时候,都可以直接运行,因此运行效率会提高。
在Android5.0以后,谷歌彻底抛弃Dalvik,采用ART,那么这两种虚拟机有什么区别呢
首先介绍一下.dex文件,全名是Dalvik Executable,是一种专门为Dalvik设计的可运行的压缩格式
区别在于:字节码的编译
在Dalvik下,应用每次运行时都会执行转换机器码操作;
在ART(Android Runtime)下,应用在第一次安装的时候,字节码就会预先转换成机器码
ART优点:
1、系统性能的显著提升。
2、应用启动更快、运行更快、体验更流畅、触感反馈更及时。
3、更长的电池续航能力。
4、支持更低的硬件。
ART缺点:
1、更大的存储空间占用,可能会增加10%-20%。
2、更长的应用安装时间。
总的来说ART的功效就是“空间换时间”。
这篇关于ART Dalvik 区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!