论文部分内容阅读
随着Android系统在移动设备市场的日益繁荣,投入到Android系统研究的人力越来越多,可以说Android系统在可预见的几年内,都将保持极其迅猛的势头不断大踏步地往前发展。另一方面,CK-CPU(原名CK-Core)——由杭州中天微系统有限公司和浙江大学联合开发,面向嵌入式系统和SOC应用领域的32位高性能低功耗处理器IP核系列,是国内最近崛起的嵌入式CPU的有力竞争者,有着广泛的发展前景。本课题正是基于进一步推动CK-CPU和Android系统的发展的初衷,在移植Android系统到CSKY体系结构(CK-CPU基于的指令集架构)平台上的背景下,对Dalvik虚拟机进行深入的研究和分析。本文先详细阐述了Java虚拟机和Dalvik虚拟机的原理和异同之处,其中主要突出了Dalvik虚拟机相比于标准Java虚拟机的优势,指明了Dalvik虚拟机更适合移动设备,以及Android系统之所以选择Dalvik虚拟机的原因。强调了基于寄存器型架构和使用专属的可执行文件——DEX格式,是Dalvik虚拟机针对移动设备的优化措施。本文的具体移植工作主要是实现针对CSKY体系结构优化的汇编解释器——CSKY Mterp(包括一套针对CK-CPU有硬件浮点协处理器的CPU而实现的针对浮点运算优化的指令处理程序集)和JNI调用桥,同时完成支持Dalvik虚拟机在CK-CPU平台上运行的相关工作,包括Linux 2.6对Android系统的支持,Android专属C库Bionic的移植等等。另外,本文还对移植成功的CSKY Dalvik虚拟机进行性能测试,结果表明CSKY Mterp的性能比Dalvik自带的C语言版本快速解释器和移动型解释器提高了2-3倍。实现浮点优化后的CSKY Mterp在浮点性能上又提升了3倍左右。在本文的最后,针对Dalvik虚拟机的执行引擎,内存管理以及本地方法接口,提出了一系列的优化技术及可能性,为以后的工作指明了方向。其中,执行引擎的优化是CSKY平台Dalvik虚拟机性能优化的核心。