论文部分内容阅读
随着Android平台在手机等移动终端上的推广,以及龙芯处理器市场化的进一步扩大,将Android系统部署到龙芯平台对龙芯计算机的工业化推广有重要现实意义。Dalvik虚拟机是Android运行环境的核心组件,为改善龙芯平台Android应用程序的运行效率,研究Dalvik虚拟机在龙芯平台上的移植与优化技术具有重要的研究价值和意义。Dalvik实现是Google公司专为Android平台设计高性能Java虚拟机,Dalvik采用了基于寄存器架构,虚拟机内部的寄存器可以更大程度地映射到目标机的寄存器上,发挥其运行在RISC指令系统机器上的优势;另外,Dalvik采用了全新的指令系统和可执行文件格式用来提高虚拟机的执行效率。与传统的Java虚拟机相比,Dalvik虚拟机的实现在系统资源受限设备上运行可以获得更高的性能。本文主要讨论了Dalvik虚拟机的实现机制以及在龙芯平台的移植和优化实现。首先根据Dalvik虚拟机的规范分析了其字节码指令集和可执行文件格式;然后研究了Dalvik虚拟机的实现,主要分析了虚拟机的内部结构和运行机制等,接着分析了Dalvik虚拟机的各个功能模块的实现,如类装载模块、常量池解析模块、解释器及其运行时环境等;接下来阐述了基于龙芯平台的Dalvik虚拟机解释器实现方法,使用龙芯汇编指令实现每个字节码的解释程序,并结合龙芯平台体系结构的特性,对Dalvik虚拟机的JNI方法调用模块进行了汇编优化;接下来详细研究了Dalvik JIT编译器的实现技术。最后借助于Oprofile性能分析工具,分别对已经移植到龙芯平台的Dalvik虚拟机和经过优化的虚拟机进行了性能分析,经过数据对比,针对龙芯平台JNI方法调用的优化取得了比较理想的效果。