JVM、Dalvik以及ART的区别

本文深入探讨了JVM、Dalvik及ART三种虚拟机的区别,详细讲解了它们在字节码处理、执行效率及内存管理上的不同。Dalvik针对Android平台优化,采用寄存器架构,支持dex格式;而ART则引入AOT预编译机制,提升应用启动速度与执行效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

JVM

java虚拟机,解析并运行字节码。

Dalvik

Android平台的虚拟机,支持运行dex文件。

.dex格式是专为Dalvik应用设计的一种压缩格式,适合内存和处理器速度有限的系统

ART

ART代表AndroidRuntime,在应用安装的时候就预编译字节码到机器语言,这一机制叫Ahead-Of-Time(AOT)预编译。在移除解释代码这一过程后,应用程序执行将更有效率,启动更快

比较

Dalvik pk JVM

  1. Dalvik指令集是基于寄存器的架构,执行特有的文件格式——dex字节码(适合内存和处理器速度有限的系统)
  2. 每一个Android 的App是独立跑在一个VM中的。因此一个App crash只会影响到自身的VM,不会影响到其他。Dalvik经过优化,允许在有限的内存中同时运行多个虚拟机的实例,并且每一个 Dalvik应用作为一个独立的Linux进程执行。

Dalvik pk ART

Dalvik 是依靠一个Just-In-Time(JIT)编译器去解释字节码,运行时编译后的应用代码都需要通过一个解释器在用户的设备上运行,这一机制并不高效,但让应用能更容易在不同硬件和架构上运行。
ART 应用安装时候把字节码编译成机器语言 ,启动更快,执行效率更高,省电。

参考

Android开发——JVM、Dalvik以及ART的区别

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值