Dalvik和ART虚拟机的区别
来源:互联网 发布:pro tools 11 mac破解 编辑:程序博客网 时间:2024/06/11 08:25
Dalvik是Google开发运行在Android平台的Java虚拟机, Android编译后生成dex文件。Dalvik虚拟机下运行Java时,要将字节码通过即时编译器(just in time ,JIT)转换为机器码(机器码才是能真正运行的),这会拖慢应用的运行效率。
所以Google开发了新的虚拟机叫ART(Android Runtime),应用在第一次安装的时候,字节码就会预先编译成机器码,使其成为真正的本地应用。这个过程叫做预编译(AOT,Ahead-Of-Time)。这样的话,应用的启动(首次)和执行都会变得更加快速。
ART分为2种模式, 即解释模式和AOT机器码模式。
解释模式类似于JavaScript, 就是取出Dex代码并逐条解释,运行仍然会慢;
机器码模式就是在安装app时就编译好Dex对应的机器码,运行很快, 这是Android5.0及后续版本的默认方式。
我们知道Android编译后生成dex文件, 真正运行时要在执行loadDex后调用dexopt(dalvik)或dexoat(ART)得到odex文件, 即dex不能被ART虚拟机直接运行!
可以忘掉Dalvik了, 因为Google已经抛弃了它! 有精力可以好好研究一下ART。
这是Android7.1.1的代码, 一级目录有art和dalvik, 就是对应虚拟机的代码目录。
阅读全文
0 0
- Dalvik和ART虚拟机的区别
- JVM、Dalvik VM和ART虚拟机之间的区别
- JVM、Dalvik VM和ART虚拟机之间的区别
- Dalvik虚拟机和ART(Android RunTime)的区别
- Dalvik和ART的区别
- Dalvik和ART的区别
- Dalvik和ART的区别
- Dalvik和ART的区别
- Dalvik和ART的区别
- JVM、Dalvik及ART虚拟机的区别
- ART 和 Dalvik 虚拟机
- Dalvik虚拟机和Art虚拟机
- Dalvik 和 ART区别
- ART和Dalvik区别
- Art和Dalvik区别
- ART和Dalvik区别
- android dalvik和art的区别
- Dalvik(达尔维克)和ART的区别
- 手机蓝牙连接相关问题
- python set操作
- 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器
- CAN总线中继的feedback suppression
- Android NDK墓碑/崩溃分析
- Dalvik和ART虚拟机的区别
- linux+dealii
- redis杂记(持续更新)
- 随笔-spingmvc controller线程安全
- 取非行内样式
- tensorflow68 《深度学习原理与TensorFlow实战》04 CNN看懂世界 05neural_style.py
- RMQ的两种实现ST算法,和线段树
- Android中 @和?区别以及?attr/**与@style/**等的区别
- fastboot