英语

Dalvik & ART

2021-08-23  本文已影响0人  打工崽

对于Android应用层开发,底层虚拟机知识除了JVM之外,还应对Dalvik和ART有所了解,涉及的知识不多,在此进行一下归纳总结


Dalvik

1. DVM与JVM的区别

DVM之所以不是JVM,是因为其并未遵守JVM规范来实现,因此主要有以下区别


2. DVM架构

DVM源码部分 目录 / 文件 说明如下

其中,libdex会被编译为libdex.a静态库,作为dex工具使用。dexdump是反编译工具。DVM架构如图所示


image.png

3. DVM运行时堆

DVM运行时堆使用标记——清除算法进行GC,主要结构如下


image.png

ART

ART虚拟机的发布是用来替换DVM的,先来看ART和DVM的区别

1. ART与DVM的区别


2. ART运行时堆

与DVM的GC不同的是,ART采用了多种垃圾回收方案,每个方案会运行不同的垃圾收集器,默认采用了CMS方案,该方案主要使用sticky-CMS和partial-CMS。根据不同的方案,运行时堆也有不同的划分,默认由4个Space和多个辅助数据结构组成,具体如图


image.png
上一篇下一篇

猜你喜欢

热点阅读