本文主要是介绍安卓Java面试题 121- 130,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
121. Android Dalvik虚拟机和ART虚拟机对比 ? |
Dalvik Android4.4及以前使用的都是Dalvik虚拟机,我们知道Apk在打包的过程中会先将java等源码通过javac编译成.class文件,但是我们的Dalvik虚拟机只会执行.dex文件,这个时候dx会将.class文件转换成Dalvik虚拟机执行的.dex文件。Dalvik虚拟机在启动的时候会先将.dex文件转换成快速运行的机器码,又因为65535这个问题,导致我们在应用冷启动的时候有一个合包的过程,最后导致的一个结果就是我们的app启动慢,这就是Dalvik虚拟机的JIT特性(Just In Time)。 ART ART虚拟机是在Android5.0才开始使用的Android虚拟机,ART虚拟机必须要兼容Dalvik虚拟机的特性,但是ART有一个很好的特性AOT(ahead of time),这个特性就是我们在安装APK的时候就将dex直接处理成可直接供ART虚拟机使用的机器码,ART虚拟机将.dex文件转换成可直接运行的.oat文件,ART虚拟机天生支持多dex,所以也不会有一个合包的过程,所以ART虚拟机会很大的提升APP冷启动速度。 ART优点: 加快APP冷启动速度 提升GC速度 提供功能全面的Debug特性 ART缺点: APP安装速度慢,因为在APK安装的时候要生成可运行.oat文件 APK占用空间大, |
这篇关于安卓Java面试题 121- 130的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!