Android面试之Dalvik和ART

简单记录,方便记忆。

一、Dalvik
针对Android系统面向Linux设计的虚拟机,每一个应用进都程拥有一个独立的Dalvik实例,每一个Dalvik实例都运行在一个独立的进程空间中,所以不会某个Dalvik虚拟机崩溃导致所有程序都关闭。

此图分析很好,借鉴

1、Dalvik与Java虚拟机区别
1)基于架构不同:Dalvik虚拟机基于寄存器架构;Java虚拟机基于栈架构。
2)执行字节码不同:Java虚拟机执行.class文件;Dalvik虚拟机需要把所有的.class文件打包到一个.dex文件中。
3)共享机制:Dalvik虚拟机不同应用之间在运行时可以共享相同的类;Java虚拟机不同程序打包以后时独立的。
  
二、ART
Android4.4之后加入的模式,可以理解为是Dalvik的升级。
1、ART与Dalvik的区别
1)Dalvik是JIT(即时编译),安装快,加载慢;ART是AOT(预编译),安装慢,加载快。
2)Dalvik为32位;ART是64位并兼容32位。
3)ART对GC机制进行了优化。
4)运行时堆空间划分不同。具体可参考Android内存优化(一)DVM和ART原理初探 -- 刘望舒   ART运行时Java堆创建过程分析 -- 罗升阳

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值