Dalvik 和 ART区别

来源:互联网 发布:百度清风算法 编辑:程序博客网 时间:2024/05/21 09:47
ART相对于Dalvik的一大变化是它不仅支持即时编译(JIT),而且还支持预先编译(AOT)。我们知道,在Dalvik环境下,每次应用程序运行,都需要先从字节码编译为原生代码才行。而ART 可以只编译一次,然后每次应用程序运行时,都可以直接执行编译好的原生代码。很好理解的是,预先编译也可以明显改善电池续航,因为应用程序每次运行时不用重复编译了,从而减少了 CPU 的使用频率,降低了能耗。 
      当然,ART的预先编译也有一些缺点,例如设备首次启动以及应用程序首次启动的时间会变长。不过,谷歌表示这个差距不是很大,而且他们会在这方面努力改善,使其效率接近甚至超过Dalvik;另一个缺点是原生代码占用的存储空间更大,不过,对于现在手机和平板的存储空间来说这一点点多出来的容量需求不是什么问题。 
      另外,可能大家会担心ART的运行环境会造成与之前Dalvik环境下应用程序的兼容问题,其实这完全没必要。ART是兼容 Dalvik 的字节码格式dex的,因此,开发者编写软件不会受到影响,也没有什么兼容性问题。 
      在对未来的64位架构支持方面,ART必然不会落下,这确实会带来性能上的提升和加密能力的大幅改进,同时还能保持与现有 32 位应用的兼容性。与苹果的实现方法不同,谷歌在这方面使用了指针压缩,以避免系统转换到 64 位后,内存空间占用大幅增加,所以其虚拟机仍然采用32位指针。谷歌宣称,谷歌商店现有的应用程序中,85% 都可以直接转移到64位,剩下的15%由于有原生代码,则需要重新编译,但从整体上来说,所有应用程序转移到64位平台不会花太长时间。
0 0