Dalvik和ART

什么是Dalvik

        Dalvik是适用于Android平台的java虚拟机,支持.dex格式的java应用程序运行。

什么是ART

         Android Runtime,Android4.4提供的一种与Dalvik完全不同的运行时环境,在5.0以及以上的版本默认是ART环境。在应用安装的时候,预编译字节码到机器码,这种机制叫做AOT(Ahead Of Time),应用安装会变慢,但是运行效率会更高。

         ART可以兼容Dalvik虚拟机。.dex文件经过AOT编译之后,产生的文件是.aot文件,ART如果在运行时加载.dex文件,走的流程跟Dalvik一样的流程,如果是热点代码也会通过JIT编译成机器码。

dexopt和dex2oat

         dexopt对dex进行验证和优化成odx(Optimized dex)文件

         dex2oat在安装的时候,将dex文件执行dexopt优化之后,在将odex执行AOP编译成AOT可执行的文件(机器码)。

Dalvik和ART的区别

  1. Dalvik在运行时,需要解释执行,常用的热点代码会通过JIT(Just In Time),将字节码编译成机械码。而ART环境是在应用安装的时候,字节码预编译成机器码,运行时更高效

注意:为啥在应用安装的时候,才预编译成机器码,而不是在apk编译的时候呢?

           主要的原因是安卓不同的CPU架构,比如arm64-v8a,armeabi-v7a,编译成机器码之后不能跨平台。

  1. ART占用的空间比Dalvik占用空间大,因为是预编译成机器码,空间换时间
  2. 预编译减少程序反复编译,减少CPU的使用,降低电量的消耗。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值