- 8
- 0
- 约1.38万字
- 约 12页
- 2017-10-05 发布于江苏
- 举报
Android无缝替换Dalvik虚拟机.doc
Android ART运行时无缝替换Dalvik虚拟机的过程分析
? ? ? ? 我们知道,Dalvik虚拟机实则也算是一个Java虚拟机,只不过它执行的不是class文件,而是dex文件。因此,ART运行时最理想的方式也是实现为一个Java虚拟机的形式,这样就可以很容易地将Dalvik虚拟机替换掉。注意,我们这里说实现为Java虚拟机的形式,实际上是指提供一套完全与Java虚拟机兼容的接口。例如,Dalvik虚拟机在接口上与Java虚拟机是一致的,但是它的内部可以是完全不一样的东西。
? ? ? ? ?实际上,ART运行时就是真的和Dalvik虚拟机一样,实现了一套完全兼容Java虚拟机的接口。为了方便描述,接下来我们就将ART运行时称为ART虚拟机,它和Dalvik虚拟机、Java虚拟机的关系如图1所示:
图1 Java虚拟机、Dalvik虚拟机和ART运行时的关系
? ? ? ? 从图1可以知道,Dalvik虚拟机和ART虚拟机都实现了三个用来抽象Java虚拟机的接口:
? ? ? ?1. JNI_GetDefaultJavaVMInitArgs -- 获取虚拟机的默认初始化参数
? ? ? ?2. JNI_CreateJavaVM -- 在进程中创建虚拟机实例
? ? ? ?3. JNI_GetCreatedJavaVMs -- 获取进程中创建的虚拟机实例
? ? ? ?在
原创力文档

文档评论(0)