Dalvik和ART的区别

简介: Dalvik和ART的区别

什么是Dalvik:

Dalvik是Google公司自己设计用于Android平台的Java虚拟机。Dalvik虚拟机是Google等厂商合作开发的Android移动设备平台的核心组成部分之一。它可以支持已转换为 .dex(即Dalvik Executable)格式的Java应用程序的运行,.dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。Dalvik 经过优化,允许在有限的内存中同时运行多个虚拟机的实例,并且每一个Dalvik 应用作为一个独立的Linux 进程执行。独立的进程可以防止在虚拟机崩溃的时候所有程序都被关闭。

什么是ART:

Android操作系统已经成熟,Google的Android团队开始将注意力转向一些底层组件,其中之一是负责应用程序运行的Dalvik运行时。Google开发者已经花了两年时间开发更快执行效率更高更省电的替代ART运行时。 ART代表Android Runtime,其处理应用程序执行的方式完全不同于Dalvik,Dalvik是依靠一个Just-In-Time (JIT)编译器去解释字节码。开发者编译后的应用代码需要通过一个解释器在用户的设备上运行,这一机制并不高效,但让应用能更容易在不同硬件和架构上运 行。ART则完全改变了这套做法,在应用安装时就预编译字节码到机器语言,这一机制叫Ahead-Of-Time (AOT)编译。在移除解释代码这一过程后,应用程序执行将更有效率,启动更快。

ART优点:

1、系统性能的显著提升。

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

3、更长的电池续航能力。

4、支持更低的硬件。

ART缺点:

1、更大的存储空间占用,可能会增加10%-20%。

2、更长的应用安装时间。

1686636057548.png

相关文章
|
存储 缓存 监控
ART编译模式
学习笔记
|
Android开发 Java C++
带你读《深入理解Android:Java虚拟机ART》之一:本书必读
本书将关注Android系统中至关重要的部分——Java虚拟机ART。随着Android设备的大规模普及,ART虚拟机已经成为当今使用最为广泛的JVM之一。所以,对ART虚拟机进行研究有着非同寻常的意义。本书的出现在一定程度上填补了这方面的空白。
|
缓存 监控 安全
❤️Android Runtime (ART) 和 Dalvik❤️
目录 1. Dalvik 1.1 Dalvik 和 JVM 区别 1.2 Dalvik 如何运行 java 1.3 dex文件 1.4 65535 2. Android Runtime (ART) 2.1 ART 功能 2.1.1 预先 (AOT) 编译 2.1.2 垃圾回收方面的优化 2.1.3 开发和调试方面的优化 2.2 Android 8.0 中的 ART 功能改进 2.2.1 并发压缩式垃圾回收器 2.2.2 循环优化 2.2.3 类层次结构分析 2.2.4 .oat 文件中的内嵌缓存 2.2.5 Dexlayout 2.2.6 Dex 缓存移除
501 0
❤️Android Runtime (ART) 和 Dalvik❤️
|
Java 编译器 Android开发
【Java 虚拟机原理】动态字节码技术 | Dalvik & ART 虚拟机 | Android 字节码打包过程
【Java 虚拟机原理】动态字节码技术 | Dalvik & ART 虚拟机 | Android 字节码打包过程
306 0
【Java 虚拟机原理】动态字节码技术 | Dalvik & ART 虚拟机 | Android 字节码打包过程
|
Java Android开发
【Android 逆向】ART 脱壳 ( InMemoryDexClassLoader 脱壳 | DexFile.java 对应的 dalvik_system_DexFile.cc 本地函数分析 )
【Android 逆向】ART 脱壳 ( InMemoryDexClassLoader 脱壳 | DexFile.java 对应的 dalvik_system_DexFile.cc 本地函数分析 )
154 0
|
安全 Android开发
【Android 逆向】ART 脱壳 ( DexClassLoader 脱壳 | ART 虚拟机下 DexClassLoader 类加载器脱壳点总结 )
【Android 逆向】ART 脱壳 ( DexClassLoader 脱壳 | ART 虚拟机下 DexClassLoader 类加载器脱壳点总结 )
342 0
|
安全 Android开发
【Android 逆向】ART 脱壳 ( 修改 /art/runtime/dex_file.cc#OpenCommon 系统源码进行脱壳 )
【Android 逆向】ART 脱壳 ( 修改 /art/runtime/dex_file.cc#OpenCommon 系统源码进行脱壳 )
282 0
|
缓存 Java Shell
Android上的ART虚拟机
本会讲解Android上的ART虚拟机。 我的博客中,还有另外两篇关于Android虚拟机的文章也可以配套阅读: * [Android上的Dalvik虚拟机](https://paul.pub/android-dalvik-vm/) * [Android上ART虚拟机](https://paul.
7069 0
|
算法 Java Android开发
Android热修复技术初探(一):了解Dalvik与Art虚拟机
1. 为什么需要热修复技术 当我们的Android应用程序发布到各大市场上之后,如果出现了重大bug,大部分情况下只能通过紧急发包升级来解决问题,但是这会带来以下几个问题: 应用升级需要一定的时间,时效性差,如iOS应用发布审核可能需要好几天; 需要...
1657 0