AndroidART运行时无缝替换Dalvik虚拟机的过程分析讲解.docVIP

  • 1
  • 0
  • 约1.41万字
  • 约 10页
  • 2017-02-06 发布于湖北
  • 举报

AndroidART运行时无缝替换Dalvik虚拟机的过程分析讲解.doc

AndroidART运行时无缝替换Dalvik虚拟机的过程分析讲解

Android ART运行时无缝替换Dalvik虚拟机的过程分析 Android 4.4发布了一个ART运行时,准备用来替换掉之前一直使用的Dalvik虚拟机,希望籍此解决饱受诟病的性能问题。老罗不打算分析ART的实现原理,只是很有兴趣知道ART是如何无缝替换掉原来的Dalvik虚拟机的。毕竟在原来的系统中,大量的代码都是运行在Dalvik虚拟机里面的。开始觉得这个替换工作是挺复杂的,但是分析了相关代码之后,发现思路是很清晰的。本文就详细分析这个无缝的替换过程。 我们知道,Dalvik虚拟机实则也算是一个Java虚拟机,只不过它执行的不是class文件,而是dex文件。因此,ART运行时最理想的方式也是实现为一个Java虚拟机的形式,这样就可以很容易地将Dalvik虚拟机替换掉。注意,我们这里说实现为Java虚拟机的形式,实际上是指提供一套完全与Java虚拟机兼容的接口。例如,Dalvik虚拟机在接口上与Java虚拟机是一致的,但是它的内部可以是完全不一样的东西。 实际上,ART运行时就是真的和Dalvik虚拟机一样,实现了一套完全兼容Java虚拟机的接口。为了方便描述,接下来我们就将ART运行时称为ART虚拟机,它和Dalvik虚拟机、Java虚拟机的关系如图1所示: 从图1可以知道,Dalvik虚拟机和ART虚拟机都实现了三个用来抽象Java虚拟

文档评论(0)

1亿VIP精品文档

相关文档