ART和Dalvik的区别

         其实在Android 4.2以前,安卓手机系统的应用程序均在Dalvik Java的虚拟机上运行,这种运行模式是还要依靠一个编译器来实现与应用程序的沟通。应程序每次运行时,都需要将程序内的代码即使转变为机器码才能运行,这无形中多附加了一道手续,这就造成了耗电相对较快、占用内存大、即使是旗舰机用久了也会卡顿严重的现象。       

       ART模式和Dalvik模式,相比较而言ART模式就很好的解决了这个问题,通过在安装应用程序时,自动对程序进行代码预读取编译,让程序直接编译成机器语言,免去了Dalvik模式要时时转换代码,实现高效率、省电、占用更低的系统内存、手机运行流畅。但凡事总有正反两面,ART在解决了该问题的同时,同时也有如:会占用略高一些的存储空间、安装程序时要相比普通Dalvik模式要长一些时间来实现预编译。    
      关于ART模式与Dalvik究竟有什么本质的不同,打个比方就明白了。Dalvik模式像是一台折叠自行车,每次骑之前都要组装后才能上路。而ART模式就是一个已经装好的自行车,直接就能上车走人。所以ART模式在效率上肯定是要好于Dalvik这已经基本毫无悬念,我们目前能做的就是耐心等待应用厂商对程序进行优化,以此适配ART模式,好有一种全新的体验。

     ART 的机制与 Dalvik 不同。在Dalvik下,应用每次运行的时候,字节码都需要通过即时编译器(just in time ,JIT)转换为机器码,这会拖慢应用的运行效率,而在ART 环境中,应用在第一次安装的时候,字节码就会预先编译成机器码,使其成为真正的本地应用。这个过程叫做预编译(AOT,Ahead-Of-Time)。这样的话,应用的启动(首次)和执行都会变得更加快速。

posted @ 2016-09-28 19:27  banana16314  阅读(536)  评论(0编辑  收藏  举报