首页 > 代码库 > Android的Dalvik虚拟机
Android的Dalvik虚拟机
一、 Dalvik虚拟机
其实也算是一个JAVA虚拟机,只不过它执行的不是class文件,而是dex文件
Dalvik虚拟机和ART虚拟机都实现了三个用来抽象Java虚拟机的接口:
1. JNI_GetDefaultJavaVMInitArgs -- 获取虚拟机的默认初始化参数
2. JNI_CreateJavaVM -- 在进程中创建虚拟机实例
3. JNI_GetCreatedJavaVMs -- 获取进程中创建的虚拟机实例
在Android系统中,Davik虚拟机实现在libdvm.so中,ART虚拟机实现在libart.so中。也就是说,libdvm.so和libart.so导出了JNI_GetDefaultJavaVMInitArgs、JNI_CreateJavaVM和JNI_GetCreatedJavaVMs这三个接口,供外界调用。
二、从两个角度来了解ART虚拟机是如何做到无缝替换Dalvik虚拟机的?
1. ART虚拟机的启动过程;
2. Dex字节码翻译成本地机器码的过程。
Android的Dalvik虚拟机
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。