JVM与DVM:从Dalvik到Android的转变
需积分: 17 145 浏览量
更新于2024-09-09
收藏 233KB DOCX 举报
"JVM与DVM的区别主要体现在执行的直接码文件类型、基于的架构以及内存管理和优化策略上。DVM,即Dalvik Virtual Machine,是Android操作系统中的虚拟机,它的设计避免了与Oracle公司的JVM(Java Virtual Machine)产生版权问题。DVM使用.dex文件,而非JVM的.jar文件,这使得加载速度快且内存占用少。在架构上,DVM采用寄存器基础,而JVM基于栈,寄存器架构提供了更快的CPU访问速度。此外,DVM通过dex工具优化了.class文件,去除了冗余信息,提升了类的查找效率。"
JVM(Java Virtual Machine)是Oracle公司(原SUN公司)的产品,它是Java程序运行的基础。Java代码首先被编译成.class文件,然后打包成.jar文件,JVM在运行时会逐个加载这些类文件。然而,这种加载方式在内存有限的移动设备上效率较低。
相比之下,DVM(Dalvik Virtual Machine)是为Android系统定制的。DVM使用.dex(Dalvik Executable)文件,这个格式优化了移动设备的内存使用,因为它将所有类信息整合在一个文件中,减少了I/O操作,加快了加载速度。此外,DVM采用基于寄存器的架构,这不同于JVM的基于栈的架构。在基于寄存器的架构中,指令直接操作CPU的寄存器,相比从内存中读取数据,这种方式通常更高效。
Dalvik虚拟机的设计考虑到了移动设备的特性,例如内存限制和处理器性能。为了进一步优化,DVM还引入了Just-In-Time (JIT)编译技术,可以在运行时编译部分代码,提升性能。同时,ART(Android Runtime)是DVM的后续版本,它引入了 Ahead-Of-Time (AOT) 编译,应用程序在安装时就被预编译为机器代码,进一步提高了执行效率。
JVM和DVM(或其演进的ART)在设计理念和实现上有着显著的差异,这些差异主要是为了适应各自运行环境的需求,尤其是移动设备的性能和资源限制。了解这些区别对于理解Java和Android应用的运行机制至关重要。
2024-05-07 上传
2016-08-04 上传
2014-04-18 上传
2023-09-03 上传
2023-04-25 上传
2024-06-05 上传
2023-05-31 上传
2023-06-14 上传
2023-04-30 上传
JXRJKing
- 粉丝: 0
- 资源: 1
最新资源
- 前端协作项目:发布猜图游戏功能与待修复事项
- Spring框架REST服务开发实践指南
- ALU课设实现基础与高级运算功能
- 深入了解STK:C++音频信号处理综合工具套件
- 华中科技大学电信学院软件无线电实验资料汇总
- CGSN数据解析与集成验证工具集:Python和Shell脚本
- Java实现的远程视频会议系统开发教程
- Change-OEM: 用Java修改Windows OEM信息与Logo
- cmnd:文本到远程API的桥接平台开发
- 解决BIOS刷写错误28:PRR.exe的应用与效果
- 深度学习对抗攻击库:adversarial_robustness_toolbox 1.10.0
- Win7系统CP2102驱动下载与安装指南
- 深入理解Java中的函数式编程技巧
- GY-906 MLX90614ESF传感器模块温度采集应用资料
- Adversarial Robustness Toolbox 1.15.1 工具包安装教程
- GNU Radio的供应商中立SDR开发包:gr-sdr介绍