·Dalvik虚拟机和Java虚拟机的区别

1 Java虚拟机运行的是Java字节码,Dalvik虚拟机运行的是Dalvik字节码。

传统的Java程序经过编译,生成Java字节码保存在class文件中,Java虚拟机通过解码class文件中的内容来运行程序。而Dalvik虚拟机运行的是Dalvik字节码,所有的Dalvik字节码由Java字节码转换而来,并被打包到一个DEX可执行文件中。Dalvik虚拟机通过解释DEX文件来执行这些字节码。

2 Dalvik可执行文件体积小。Android SDK中由一个叫dx的工具负责将Java字节码转换成Dalvik字节码。

dx工具对Java类文件重新排列,消除在类文件中出现的所有冗余信息,避免虚拟机在初始化时出现反复的文件加载与解析过程。

3 Java虚拟机与Dalvik虚拟机架构不同,这也是Dalvik与JVM之间最大的区别

Java虚拟机基于栈架构,程序在运行时虚拟机需要频繁的从栈上读取或写入数据,这个过程需要更多的指令分派与内存访问次数,会消耗不少CPU时间。Dalvik虚拟机基于寄存器架构,数据的访问通过寄存器间直接传递,这样的访问方式比基于栈要快很多。

·Dalvik虚拟机的结构

一个应用首先经过DX工具将class文件转换成Dalvik虚拟机可以执行的dex文件,然后由类加载器加载原生类和Java类,接着解释器根据指令集对Dalvik字节码进行解释、执行。

·什么是ART虚拟机

ART代表Android Runtime,其处理应用程序执行的方式完全不同于Dalvik,Dalvik是依靠一个JIT编译器去解释字节码。开发者编译后的应用代码需要通过一个解释器在用户的设备上运行,这一机制并不高效,但让应用能更容易在不同硬件和框架上运行。ART则是在应用安装时就预编译字节码到机器语言,效率更高,启动更快。

ART优点:

1 系统性能的显著提升

2 应用启动更快、运行更快、体验更流畅、触感反馈更及时

3 更长的电池续航能力

4 支持更低的硬件

ART缺点:

1 更大的存储空间占用

2 更长的应用安装时间

Dalvik虚拟机ART虚拟机相关推荐

  1. android art 远程控制,IT之家学院:认识Android中的Dalvik与ART虚拟机

    又是一年高考时啊,在文章开始之前,IT之家先祝各位高考考生金榜题名~ 每到这个时候,小编就会想起自己的高三时光和高考经历,那段时光真是让人难忘.提起高三生活,可能很多同学都会想到桌子上堆得厚厚的书,黑 ...

  2. Dalvik 和 ART虚拟机

    1. Dalvik 虚拟机 Dalvik 虚拟机(Dalvik Virtual Machine),简称 Dalvik VM 或者 DVM.它是 Google 专门为 Android 平台开发的虚拟机, ...

  3. android dalvik虚拟机的作用,IT之家学院:认识Android中的Dalvik与ART虚拟机

    又是一年高考时啊,在文章开始之前,IT之家先祝各位高考考生金榜题名~ 每到这个时候,小编就会想起自己的高三时光和高考经历,那段时光真是让人难忘.提起高三生活,可能很多同学都会想到桌子上堆得厚厚的书,黑 ...

  4. Dalvik虚拟机、ART虚拟机

    Dalvik虚拟机 Dalvik虚拟机是Google区Android平台开发的虚拟机,它是Adnroid4.4以前的应用的解释执行器.Dalvik虚拟机并不是Java虚拟机(JVM)的替代器. Dal ...

  5. 移动安全--7--JVM / Dalvik / ART虚拟机

    7-1.关于Dalvik和ART虚拟机 1.Android4.4之前的Android运行时是Dalvik虚拟机.它使用即时编译. 2.Android4.4中引入了ART虚拟机,但默认的Android运 ...

  6. 面试关于jvm、dvm和art虚拟机区别

    一.Dalvik与JVM的区别 1.首先最主要的区别,Dalvik 基于寄存器,而 JVM 基于栈.那么什么是基于寄存器什么是基于栈呢? 有关寄存器可以参照百度百科的内容,下面是一段摘抄: 寄存器是中 ...

  7. java vm art 2.1.0_成都汇智动力-JVM、DalvikVM和ART虚拟机之间的区别

    使用Dalvik Virtual Machine (DVM)作为其,所有安卓程序都运行在安卓系统进程里,每个进程对应着一个Dalvik虚拟机实例.他们都提供了对象生命周期管理.堆栈管理.线程管理.安全 ...

  8. 【Java 虚拟机原理】动态字节码技术 | Dalvik ART 虚拟机 | Android 字节码打包过程

    文章目录 一.动态字节码技术 二.Dalvik & ART 虚拟机 三.Android 字节码打包过程 总结 一.动态字节码技术 动态字节码技术 就是在 运行时 , 动态修改 Class 字节 ...

  9. JVM、DVM(Dalvik VM)和ART虚拟机的区别

    JVM.DVM(Dalvik VM)和ART虚拟机的区别 DVM vs JVM 1.共同点: 都是解释执行 都是每个 OS 进程运行一个 VM,并运行一个单独的程序 在较新版本中(Froyo / Su ...

最新文章

  1. 程序员饭碗不保了?GPT-3 最强应用发布,动动手指就自动写代码的神器来了!...
  2. pmp每日三题(2022年2月17日)
  3. java 枚举内嵌枚举_Java枚举益智游戏
  4. delete postman 传参_PostMan 传参boolean 类型,接口接受的值一直是false
  5. 算法不会,尚能饭否之双向循环链表
  6. python简单代码-python实现顺序表的简单代码
  7. 遍历矩阵每一行穷举_六十三---矩阵中的路径
  8. 作业一:建立博客、自我介绍、速读教材、学习进度总结(1)
  9. ServiceNow常用角色和分组
  10. jsp中java实现弹窗_jsp用java弹窗
  11. 无线扫码枪 服务器查询异常,无线扫描枪常见问题及解决方法
  12. html 网页地图集制作ECHARTS,pyecharts绘制地图(示例代码)
  13. port ‘pi_data‘ not found in module ‘dcfifo‘
  14. ts 正负条形图 组件_手把手教你使用ggplot2绘制条形图
  15. Java+webdriver的自动化测试框架搭建
  16. Linux知识入门(一)
  17. 基于移动互联网的订餐APP系统设计与实现
  18. 网吧服务器固态硬盘使用,无盘服务器初次使用SSD固态硬盘应注意使用备用盘
  19. Python抓取开源中国资讯(使用BeautifulSoup库)
  20. 安装Ubuntu 16.04出现的各种坑爹问题总结

热门文章

  1. android换台电脑打包签名,Android 使用Android Studio + Gradle 或 命令行 进行apk签名打包 -电脑资料...
  2. linux运维转行程序员
  3. 互动作业Android版本下载,互动作业旧版本安卓2.3
  4. android中获取mac地址8.0,华为Mate10手机emui8.0系统怎么查看IP地址和mac地址?
  5. Linux文件管理和xfs文件系统的备份恢复
  6. 你的可用性达标了吗?云端业务性能高可用的深度实践
  7. Sound Event Detection: A Tutorial 学习笔记
  8. 【QT项目】基于c++ qt的手机通讯录管理系统
  9. 超好看的UI界面智能看板源码
  10. Office 2013 Preview专业增强版下载