Dalvik ART
Android 4.4 到 Android 5.0有一个很大的变化,就是从Dalvik 到 ART,以下是根据我的理解做的总结。
有不对的地方,欢迎指正。
虚拟机 |
Dalvik Dalvik VM =Virtual Machine |
ART = Android Runtime |
运行机制 |
JIT(Just-in-time)的解释器动态的进行编译并执行,即每次运行都要进行编译,字节码都需要通过即时编译器转换为机器码,这一过程拖慢了运行效率。 |
应用在第一次安装的时候,字节码就会预先编译成机器码,使其成为本地应用。这个过程叫做预编译(AOT, Ahead-Of-Time)。这样,应用的启动(首次)和执行都会变得更加快速。 |
Android 4.4 KitKat |
默认,为主 |
引入,并存,为辅 |
Android 5.0 Lollipop |
为辅 |
并存,为主 |
缺点 |
耗电快 内存大 用久了卡顿 |
1. 机器码占用的存储空间更大。 字节码变为机器码之后,可能会增加 10%-20%,不过在应用包中,可执行的代码常常只是一部分。ART模式安装应用所占的ROM空间比Dalvik模式多了接近一倍。 比如最新的 Google+ APK 是 28.3 MB,但是代码只有 6.9 MB。 2. 应用的安装时间会变长。 3. 兼容性差,闪退的问题。 |
优点 |
1. 运行高效:根据一些基准测试,新的运行环境能够使大多数应用的执行时间减半。 CPU 消耗大、运行时间长的应用能够更加快速地完成,而一般的应用也能更加流畅,比如动画效果更顺畅,触控反馈更加即时。在多核处理器的设备上,多数情况下只需激活少量的核心,或者能够更好的利用 ARM 的 big. LITTLE 架构。 2. 占用内存小: 3. 省电:提升电池的续航能力 4. 流畅:提升系统的性能 |
Dalvik ART相关推荐
- 【Java 虚拟机原理】动态字节码技术 | Dalvik ART 虚拟机 | Android 字节码打包过程
文章目录 一.动态字节码技术 二.Dalvik & ART 虚拟机 三.Android 字节码打包过程 总结 一.动态字节码技术 动态字节码技术 就是在 运行时 , 动态修改 Class 字节 ...
- Android SDK各个版本API的特性及兼容性(Dalvik/ART)
Android最新support包v4,v7,v13,v14,v17等 - http://download.csdn.net/download/u012808234/9502763 Android A ...
- 移动安全--7--JVM / Dalvik / ART虚拟机
7-1.关于Dalvik和ART虚拟机 1.Android4.4之前的Android运行时是Dalvik虚拟机.它使用即时编译. 2.Android4.4中引入了ART虚拟机,但默认的Android运 ...
- Dalvik/ART(ANDROID)中的多线程机制(4)
在java中创建一个线程, new Thread对象, 并调用它的start()方法, 这是每一个java程序员都知道的事.在linux C中创建一个线程, 使用pthread_create(& ...
- Dalvik/ART(ANDROID)中的多线程机制(2)
Android消息处理机制(二) 角色综述(回顾): (1)UI thread通常就是main thread,而Android启动程序时会替它建立一个MessageQueue. (2)当然需要一个Lo ...
- Dalvik/ART(ANDROID)中的多线程机制(3)
封装任务 Message 在整个消息处理机制中,message又叫task,封装了任务携带的信息和处理该任务的handler.message的用法比较简单,这里不做总结了.但是有这么几点需要注意(待补 ...
- Dalvik/ART(ANDROID)中的多线程机制(1)
Google参考了Windows的消息处理机制,在Android系统中实现了一套类似的消息处理机制.学习Android的消息处理机制,有几个概念(类)必须了解: 1. Message 消息 ...
- JAVA虚拟机、Dalvik虚拟机和ART虚拟机
从Android5.0开始废弃了Dalvik,全面推行ART. Dalvik与ART的区别 (1)在Dalvik下,应用每次运行都需要通过即时编译器(JIT)将字节码转换为机器码,即每次都要编译加运行 ...
- ART与Dalvik、JVM之间的关系你懂了吗?
Android 高阶知识 博客系列目录 类加载机制原理解析 ART与Dalvik.JVM之间的关系你懂了吗? ART与Dalvik.JVM 认识了解虚拟机 JVM Dalvik ART 即时编译器(J ...
最新文章
- Sequence point 中文
- 文件和目录之stat、fstat和lstat函数
- php命名空间 动态 new,PHP命名空间(namespace)的动态访问及使用技巧_php实例
- DB设计原则(一)字段名定义避免二义性。
- CentOS上修改用户名
- 想做测试经理的看过来
- 制造领域的人工智能技术
- eclipse中Lombok注解无效
- BroadcastChannel页面间通讯
- 前端有未来吗?听我娓娓道来!
- 【报告分享】2020年618直播带货数据报告.pdf(附下载链接)
- 加密 web.config
- 计算机组成原理第五版第四章课后答案,计算机组成原理第4章习题参考答案
- (已更新)娱乐微信小程序源码下载-多玩法安装简单
- 做数据分析为何要学统计学(1)——样本分布
- 什么是CDN?CDN的技术原理是什么?
- Atom 修改Atom快捷键 实测可行
- 失业参加聚会_谁被邀请参加聚会?
- Vuepress2版本打包报错:TypeError: Invalid value used as weak map key
- 介绍几个农业和渔业的搜索引擎
热门文章
- 2022-2028年全球与中国汽车面料行业产销需求与投资预测分析
- 设备无法启动,代码10,如何解决
- NXUOJ(19计科数据结构考试)D1:干饭人
- unity之模糊背景(带你欣赏女人的朦胧美)
- class10:子路由和MVC模型
- ASM3142 USB 3.1控制芯片_ ASM3242 USB 3.2 2x2 控制器
- 老子终于理解递归了(哈哈哈哈哈哈哈哈哈哈)
- logo设计的核心技巧分享
- android相机拍照没照片,从Android相机拍摄的照片完全是黑色的
- iPhonexr安兔兔html5测试,iPhone XR安兔兔跑分曝光:与iPhone8Plus性能相差多少