ART和Dalvik:修订间差异
跳转到导航
跳转到搜索
无编辑摘要 |
小无编辑摘要 |
||
| 第1行: | 第1行: | ||
此页内容翻译自:https://source.android.com/devices/tech/dalvik/ | 此页内容翻译自:https://source.android.com/devices/tech/dalvik/ | ||
ART,为 Android runtime的简称,它为 | ART,为 Android runtime的简称,它为 Andriod中应用程序和系统服务提供一种新的运行模式。ART和它的前任 Dalvik都是为 Android专门开发的。ART兼容 Dalvik的文件格式和 Dex文件规范。 | ||
既然 ART和 Dalvik都兼容 Dex文件规范,所以之前为 Dalvik开发的应用理应在 ART上也能正常运作。不过,仍有一些 Dalvik上的开发技巧在 ART上是不能使用的,可以点击[http://developer.android.com/guide/practices/verifying-apps-art.html 这里]作进一步了解。 | 既然 ART和 Dalvik都兼容 Dex文件规范,所以之前为 Dalvik开发的应用理应在 ART上也能正常运作。不过,仍有一些 Dalvik上的开发技巧在 ART上是不能使用的,可以点击[http://developer.android.com/guide/practices/verifying-apps-art.html 这里]作进一步了解。 | ||
| 第14行: | 第14行: | ||
当应用安装时,ART通过 '''dex2oat'''工具对应用进行编译。这个工具可以把输入的 DEX文件编译生成当前机器兼容的可直接运行的执行机器码。理论上说,这个工具对所有正确的 DEX文件都应该是兼容的,但有些被预处理过的、不正确的 DEX文件,可能会出错(即使之前这些文件可以被 Dalvik相对较宽的校验机制通过)。[http://developer.android.com/guide/practices/verifying-apps-art.html#GC_Migration 更多内容] | 当应用安装时,ART通过 '''dex2oat'''工具对应用进行编译。这个工具可以把输入的 DEX文件编译生成当前机器兼容的可直接运行的执行机器码。理论上说,这个工具对所有正确的 DEX文件都应该是兼容的,但有些被预处理过的、不正确的 DEX文件,可能会出错(即使之前这些文件可以被 Dalvik相对较宽的校验机制通过)。[http://developer.android.com/guide/practices/verifying-apps-art.html#GC_Migration 更多内容] | ||
== 更优秀的垃圾回收机制 == | |||
垃圾回收(GC)会影响应用的性能体验,导致界面卡顿、反应迟缓等等。ART在垃圾回收上的提升体现在以下几个方面: | |||
* GC的中断暂停从 Dalvik时的 2次减少为 1次 | |||
* 在 GC暂停时仍可并行处理其他事务 | |||
* 在回收刚创建的、生命周期较短的对象时,消耗的时间更短 | |||
* 更及时有效的回收机制,使得 GC_FOR_ALLOC事件更少发生 | |||
* 更少的内存占用和内存碎片 | |||
== 开发调试提升 == | |||
ART拥有一系列的特性,使得应用的开发和调试更为方便有效。 | |||
=== 支持采样分析 === | |||
在此之前,开发者一般使用 Traceview | |||
2015年5月13日 (三) 01:54的版本
此页内容翻译自:https://source.android.com/devices/tech/dalvik/
ART,为 Android runtime的简称,它为 Andriod中应用程序和系统服务提供一种新的运行模式。ART和它的前任 Dalvik都是为 Android专门开发的。ART兼容 Dalvik的文件格式和 Dex文件规范。
既然 ART和 Dalvik都兼容 Dex文件规范,所以之前为 Dalvik开发的应用理应在 ART上也能正常运作。不过,仍有一些 Dalvik上的开发技巧在 ART上是不能使用的,可以点击这里作进一步了解。
ART特性
这里列出的是 ART的一些主要特性:
AOT(Ahead-of-time)编译
ART 采用的是“运行前”(AOT)编译,这样使得运行效率得到提升。此外,与 Dalvik相比,ART在应用安装时有着更为严格的校验机制。
当应用安装时,ART通过 dex2oat工具对应用进行编译。这个工具可以把输入的 DEX文件编译生成当前机器兼容的可直接运行的执行机器码。理论上说,这个工具对所有正确的 DEX文件都应该是兼容的,但有些被预处理过的、不正确的 DEX文件,可能会出错(即使之前这些文件可以被 Dalvik相对较宽的校验机制通过)。更多内容
更优秀的垃圾回收机制
垃圾回收(GC)会影响应用的性能体验,导致界面卡顿、反应迟缓等等。ART在垃圾回收上的提升体现在以下几个方面:
- GC的中断暂停从 Dalvik时的 2次减少为 1次
- 在 GC暂停时仍可并行处理其他事务
- 在回收刚创建的、生命周期较短的对象时,消耗的时间更短
- 更及时有效的回收机制,使得 GC_FOR_ALLOC事件更少发生
- 更少的内存占用和内存碎片
开发调试提升
ART拥有一系列的特性,使得应用的开发和调试更为方便有效。
支持采样分析
在此之前,开发者一般使用 Traceview