Android ART简介

来源:互联网 发布:网络教师招聘 编辑:程序博客网 时间:2024/06/11 16:23

Android ART简介

android ART(android runtime)是anroid 4.4以后用来替换Davlik虚拟机的一种运行环境,它是一个android操作系统使用的虚拟机,它将android应用的dex字节码装换为设备运行环境可以执行的较累赘的本地指令。

android 2.2(Froyo)把trace-based just-in-time (JIT)编译器引入到Dalvik虚拟机中,通过在应用执行期间不断的解析它们并且动态的将经常使用的应用程序片段字节码编译成本地机器码。然而,Dalvik解释了应用程序剩下的字节码,这些短小的字节码片段对应的本地执行机器码被称为 traces,为性能优化做出极有意义的贡献。

不像Dalvik虚拟机,ART使用ahead-of-time (AOT) compilation将整个application编译成本地机器码在application安装的时候。通过消除Dalvik虚拟机的解释和trace-based jit编译器,ART提高了了全局的执行效率和减少了电量消耗,直接导致了电池管理和手机的性能提升。同时,ART带来了更快的application执行速度,提高了内存分配能力和GC回收的经济效益,新的调试特性,更准确的application解析能力。

为了具备向后兼容性,ART使用了和Dalvik一样的dex字节码作为输入,提供了标准的dex文件作为apk文件的一部分,然而使用odex文件替代Executable and Linkable Format (ELF)可执行文件。如果一个application是被ART使用 dex2oat 工具编译的,它能够单独的运行在编译的 ELF可执行文件。因此,ART消除了各种的应用执行时和Dalvik虚拟机的过度联系的解释作用和trace-based JIT编译。略有下降的是,ART在application安装时需要额外的时间,并且application会比较消耗第二存储(例如存储卡)的空间用来存储编译后的代码。

Android 4.4 kitkat 带来了ART新技术的预览,将ART作为一个可选择的运行时环境,默认的还是dalvik虚拟机环境,在5.0 Lollipop 版本中,ART将会完全取代 Dalvik虚拟机。

参考文章

Android Runtime

0 0