<返回首页

Android虚拟机Dalvik和ART详解

2023-02-20 16:04:22  51CTO  Android开发编程
加入收藏

App安装时不编译代码只校验合法性,运行时通过解释器执行,将运行频繁的代码进行编译放到内存缓存并且记录在本地配置文件,后台线程编译配置文件记录的方法存放到.odex文件,再次运行App时优先读.odex文件中编译后的代码,然后重复这个过程。

Android应用用Java/Kotlin编写,Android虚拟机并不使用JVM字节码,而是将Class文件通过DX编译器(现已换成D8)编译程dex文件,然后由虚拟机执行;

底层眼里无论是java还是kolin,最终都是机器码运行;

不废话,开始介绍

一、Dalvik简单介绍

1、Dalvik虚拟机介绍

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

2、Dalvik诞生消亡史

3、Dalvik 特点

二、ART虚拟机

1、ART概念介绍

2、基本概念和名词

3、ART 如何运作

(1)4.4~7.0

最开始ART只采用AOT编译,在App安装时就编译所有代码存储在本地,打开App直接运行,这样做的优点是应用运行速度变快,缺点也很明显,App安装时间明显变长,而且占用存储空间较大

(2)7.0

Android N之后对于ART进行改动,重新引入了JIT编译,结合使用AOT/JIT混合编译,主要机制如下:

(3)8.0

Android 8.0引入了.vdex文件,它里面包含 APK 的未压缩 DEX 代码,以及一些用于加快验证速度的元数据.

4、ART垃圾收集器优化

5、ART时间线

6、Dalvik VM 和 ART VM 有什么区别

总结

核心内容就一句话:App安装时不编译代码只校验合法性,运行时通过解释器执行,将运行频繁的代码进行编译放到内存缓存并且记录在本地配置文件,后台线程编译配置文件记录的方法存放到.odex文件,再次运行App时优先读.odex文件中编译后的代码,然后重复这个过程。

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
推荐信息
 
API接口是什么?电商API接口如何使用?
 
API接口管理难点和API接口管理策略
 
近两月多家银行资本工具发行额度获批,释放了什么信号
成都银行不超过150亿元资本工具计划发行额度获批。 国家金融监督管理总局四...
 
OpenAI首席技术官:生成式AI带来的经济影响才刚刚开始
新浪科技讯 北京时间5月30日下午消息,OpenAI首席技术官Mira Murati说,生成式...
 
GPT准备替中医把脉了
 
房贷利率最低至3.5% 多地密集下调首付比例
每经记者 赵景致 甄素静 房信贷政策等九条政策措施。仅仅隔了一天,5月28日,一...
 
上海因房产新政离婚预约爆满?官方回应
 
楼市新政陆续落地 一线城市动作备受关注
近段时间以来,房地产政策迎来多项调整,涉及贷款利率、首付比例等内容,各地密集...
 
全球100位顶尖商业大佬如何看AI
 
马斯克放大招 xAI算力超级工厂如何重塑AI行业格局
 
广州市调整优化差别化住房信贷政策
为贯彻落实党中央、国务院决策部署,适应房地产市场供求关系的新变化、人民群...
 
“业绩不好不是我的兄弟”!京东“整顿职场”上热搜,刘强东回应
 
沪九条落地12小时|售楼处不打烊,部分新盘拟收回折扣,二手房东提价、买家
 
iOS 18新AI功能曝光
 
让用户吃石头,给披萨涂胶水,Google AI 搜索疯了吗
 
微信推出青少年模式:有这4个功能!
 
微信公众平台:将处置通过捏造内容损害个人名誉行为
 
注册资本3440亿元!国家大基金三期来了,六大行均参与出资
 
抖音如何撰写吸睛标题
 
Python图像处理库OpenCV入门教程:实践与构建
OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器...
返回栏目