【Android论文栏目提醒】:网学会员在Android论文频道为大家收集整理了“Android虚拟机Dalvik在龙芯平台上的移植与优化 - 硕士论文“提供大家参考,希望对大家有所帮助!
And ro i d虚拟机Da I i v k在龙芯平台上的移植与优化 、一. Porting and Optimization of Dalvik virtual machine of ,》 Android on Loongson-·based platform 学科专业: 计算机科学与技术 研究方向: 嵌入式系统 作者师: 吴少刚副教授 ;。
o务姆飞{0墨茗r。
砖漓 . 二。
一一年五月恰t絮.0, Porting and Optimization of Dalvik virtual machine of Android on Loongson-based platform. A Thesis Submitted for the Degree of Master Candidate:Zou Guomin Supervisor:Associate Professor Wu ShaogangI卜。
f-I● College of Computer&Communication Engineering China University of Petroleum(EastChina) 关于学位
论文的独创性声明 本人郑重声明:所呈交的
论文是本人在指导教师指导下独立进行研究工作所取得的成果,
论文中有关资料和数据是实事求是的。
尽我所知,除文中已经加以标注和致谢外,本
论文不包含其他人已经发表或撰写的研究成果,也不包含本人或他人为获得中国石油大学(华东)或其它教育机构的学位或学历证书而使用过的材料。
与我一同工作的同志对研究所做的任何贡献均已在
论文中作出了明确的说明。
若有不实之处,本人愿意承担相关法律责任。
学位
论文作者签名: 堑臣!亟& 日期:加,f年歹月乡,日 学位
论文使用授权书 本人完全同意中国石油大学(华东)有权使用本学位
论文(包括但不限于其印 刷版和电子版),使用方式包括但不限于:保留学位
论文,按规定向国家有关部门(机 构)送交学位
论文,以学术交流为目的赠送和交换学位
论文,允许学位
论文被查阅、 借阅和复印,将学位
论文的全部或部分内容编入有关数据库进行检索,采用影印、 缩印或其他复制手段保存学位
论文。
保密学位
论文在解密后的使用授权同上。
学位
论文作者签名: 叠至!銎盟 日期:勿I,年 歹具≯’日 指导教师签名: 日期:加,,年 夕月多9日 Porting and Optimization of Dalvik virtual machine of Android on Loongson—based platform Zou Guomin(Computer Science and Technology) Directed by Prof.Wu Sllaogang Abstract With the promotion of Android platform in mobile termination such as cellphone and thefurther expansion of market-oriented of Loongson processor,it will be of great signifiance thatAndroid is deployed to Loongson platform for the extension of Loongson-basedindustrialization.Dalvik virtual machine is one of core components of Android runtimeenvironment and researching the porting and optimization techniques of Dalvik virtualmachine on Loongson platform has become an urgent task in order to improve theperformance ofAndroid applications on Loongson platform. Dalvik is a high-performance Java virtual machine that Google designed for Androidplatform,and the architecture of Dalvik is register-based.The registers in the virtual machinewill be more closely mapped to the registers on the target machine,SO the Dalvik runing on theRISC machine has great advantage.On the side,a set of new instruction and the executable fileformat are used by Dalvik virtual machine in order to improve the performance.Therealization of the Dalvik virtual machine running on the equipment which has less systemresource will have better performance than the Java virtual machine. This dissertation mainly foucus on the running mechanism and realization of porting andoptimization of the Dalvik virtual machine on Loongson platform.First,the bytecodeinstruction set and executable file format were analyzed according to the specification ofDalvik virtual machine.Then Dalvik Was studied,and the internal architecture and operationmechanism of virtual machine were analysed.Then the primary function modules of Dalvikvirtual machine such as class loader,constant pool analyzer,interpreter and runtimeenvironment were studied.Later,the realization of Dalvik interpreter based on Loongsonplatform was presented,and the interpreter of each bytecode Was realized by using assembleprogram of Loongson.Finally,the Dalvik JNI method invocation module was optimizedaccording to the characteristics of Loongson,and the implementation of Dalvik fiT compilerwas studied in detail. Finally,with the help of oprofile performance analysis tool,Dalvik virtual machine that● 目 录第一章绪论…………. 1.1课题背景及意义…………………………………………………………………………1 1.2课题的研究现状………………………………………………………………………..2 1.2.1 Android系统发展现状…………………………………………………………….2 1.2.2基于MIPS架构的Android系统……………。
::……………………………….3 1.3本文的工作………………………………………………………………………………4 1.4本文的组织结构………………………………………………………………………5第二章Android系统运行时环境研究……………………… 2.1 Andro i d系统简介……………………………………………………………………6 2.2 Da l V i k虚拟机的执行原理……………………………………………………………一7 2.2.1 Andro;d系统开机流程………………………………………………………….7 2.2.2 Zygote进程……………………………………………………………………………………………8 2.2.3 Andro i d JN l架构介绍…………………………………………………………8 2.3 Da I v i k虚拟机的特点以及内部结构………………………………………………..9 2.3.1 Da l V i k虚拟机概述……………………………………………………………..9 2.3.2 Da I Vi k字节码及指令集介绍…………………………………………………10 2.3.3 DEX文件格式介绍……………………………………………………………..14 2.3.4 Da I V i k虚拟机的内部结构介绍……………………………………………….19 2.4本章小结………………………………………………………………………………2l第三章Dalvik虚拟机实现分析……………………………………………………………………………22 3.1 Da l v i k虚拟机的运行过程………………………………………………………….22 3.2类加载实现分析………………………………………………………………………23 3.2.1 DEX文件在内存中的结构…………………………………………………….23 3.2.2类加载实现过程………………………………………………………………..25 3.2.3类加载后的表现形式…………………………………………………………26 3.3常量池解析实现分析………………………………………………………………..26 3.4解释器的实现分析…………………………………………………………………28 解释器体系结构研究…………………………………………………………..28 字节码解释执行的实现………………………………………………………29 方法调用实现分析…………………………………………………………….30 J…方法调用实现分析………………………………………………………。
32 解释执行异常处理……………………………………………………………..34 d、l;占……………………………………………………………………………………………………..35 龙芯平台Dalvik虚拟机的移植与优化……………………………...………………….36 Da I v i k虚拟机调试环境搭建…………………………………………………36 4.2龙芯JN I方法调用优化实现……………………………………………………….37 4.2.1龙芯对过程调用的支持………………………………………………………37 4.2.2基于龙芯平台JN I调用优化………………………………………………….39 4.3龙芯Da IVi k解释器的移植实现……………………………………………………:40 4.3.1龙芯Da l vi k字节码解释程序的实现……………………………………….40 4.3.2移植过程中注意事项…………………………………………………………42 4.4 Da I V;k J l T编译器实现研究……………………………………………………….43 4.4.1 Da l V ik JI T编译器体系结构研究……………………………………………44 4.4.2 Da Iv;k JI T编译器Trace方式编译流程……………………………………46 4.5本章小结……………………………………………………………………………….48第五章龙芯Dalvik虚拟机的性能分析………………。
..….….…...…..….……..49 5.1 0prof iI e工作原理简介……………………………………………………………49 5.2优化前后函数执行分布对比……………………………………………………….50 5.3本章小结……………………………………………………………………………j……………………….5l结论.…..…..…...…...…..…..…...……...…..………..…...…...…...........…..…………...…..…...…......….….53参考文献…………………...………………………...…...。
……………………………………………………。
55附录………..…..………..…......……......…...…............…..........……..…..…….....………..….......…........58攻读硕士学位期间取得的学术成果…………………………………...…………………………………。
63致谢...……..….........….......….……..……..………..…...…………………….……….…...….………...…...…..64 中国石油大学(华东)硕士学位
论文 第一章绪论1.1课题背景及意义 Android是一套开放性的移动设备综合平台,它包括操作系统、中间件和一些关键的平台应用程序n1。
Android系统运行于Linux内核之上,可以移植到大多数的嵌入式平台上。
Android是一个开放平台,任何人都可以免费地获取其源代码,因而用户可以根据需求对系统进行定制并且能够有效降低软件开发成本。
现有运行在龙芯PC上的操作系统有红旗Linux、Loonux、Debian Linux等,将Android移植到龙芯平台,对龙芯产品的推广有着重要的工业价值。
龙芯系列处理器是我国自主研发具有完全自主知识产权的中央处理器,它具有低功耗,低成本的特点,在嵌入式、工业控制、数字电视等领域有着非常广阔的应用前景。
龙芯处理器主要包括三个系列,分别面向嵌入式应用、中低端桌面应用和低端服务器应用。
其中龙芯二号增强型处理器是64位高性能通用处理器,采用90nm的CMOS工艺实现,芯片晶体管数目为4700万,芯片面积6800微米×5200微米,最高工作频率为1GHz,典型工作频率为800MHz,单精度峰值浮点运算速度为80亿次/秒,双精度浮点运算速度为40亿次/秒,在1GHz主频下SPEC CPU2000的实测分值达到500分,综合性能已经达到高端奔腾IⅡ处理器以及中低端奔腾Ⅳ处理器的水平,而实测功耗为5 ̄7瓦。
所以,将Android移植到龙芯平台对龙芯产品在数字电视乃至工业控制等低功耗设备上的推广意义非凡。
Dalvik虚拟机是Android平台的核心组件乜3,Android应用程序的运行环境由核心函数库API和Dalvik虚拟机组成,Dalvik虚拟机在Android平台的作用如图1.1所示。
所有的Android应用程序都运行在Android系统的进程里,每个进程对应一个Dalvik虚拟机的实例,Dalvik虚拟机可以在一台设备上高效的运行多个实例进程。
Dalvik虚拟机的可执行文件被封装成专有的可执行格式——-DEX文件格式,这是被优化过的最小内存依赖格式,编译器d)【将已注册的和运行时需要的类编译成DEX格式,然后由虚拟机加载执行;并且Dalvik虚拟机依赖于底层Linux内核提供的功能,如线程机制,内存管理机制等跚。
Dalvik虚拟机不是Sun公司的标准Java虚拟机,而是由Google自主开发的,它在保证与Java虚拟机API方面的兼容的同时,针对移动设备进行了优化,占用资源更小,运行效率更高H1,而结合龙芯处理器的低功耗特性,更能提高Dalvik虚拟机的执行 第一章绪论效率,发挥Android在龙芯平台的性能。
应有层程序 应用程序框架 其它库 运行时核心库 图形图像视频播放 Dalvik虚拟机 浏览器数据库 Linux内核 ‘ 图1-1Dal、rik运行结构 Figl-1 The Running architecture of Dalvik1.2课题的研究现状1.2.1 Android系统发展现状 Android是Google与开放手机联盟(Open Handset Alliance)合作开发的基于Linux平台的手机操作系统,开放手机联盟由中国移动、摩托罗拉、高通、HTC和T-Mobile等30多家技术和无线应用的企业组成嘲,联盟成立的宗旨是为了开发更多的移动技术,大幅消减移动设备和服务的开发成本。
第一款运行Android系统的手机是在2008年9月由美国运营商T.Mobile在纽约发布,该款手机被命名为T.Mobile G1,‘由HTC公司代工制造。
Android将会促进Google与全球各地的手机制造商、运营商和开发商结成伙伴关系,开发有实用价值和吸引力的移动服务,并将这些服务进行推广。
Google已经通过开发Android系统建立了标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统。
Android在中国的前景十分广阔,首先是有成熟的消费者,Android社区也为Android在中国的普及做了很好的推广作用。
国内厂商如魅族、中国移动、中国联通、华为通讯和联想等大企业和运营商也纷纷加入了Android阵营。
现在国内的品牌有:琦基i6、华硕的Eee手机、联想的OMS和T.mobile G1、华为U8230和海尔H7。
Android形成了一个移动手机联盟,主要的手机厂商几乎全部在列,对于一个庞大的产业联盟的推动力来说,影响力是非常惊人的。
Android系统自问世以来,共有1.5、1.6、2.0、2.2和2.3等多个版本,主要发展过程如下:2008年9月23日,第一款Android手机HTC Dream使用1.0版本系统,这是Android系统的最初雏形,整合了Google的众多云端服务,如Gmail、Google地图、Gtalk、 2 中国石油大学(华东)硕士学位
论文Google搜索和GooSe同步等功能;同时HTC Dream也是Android的开发手机,使得开发者有一个稳定的开发测试平台。
2009年2月9日,Android 1.1发布,系统只针对G1手机改进了API和界面。
2009年4月30日,官方1.5版本(Cupcake)的Android发布,这是Android第一个商业化版本,增加了一些重要特色功能,例如:虚拟键盘、应用程序自动旋转、浏览器的复制粘贴功能和YouTube跟Picasa的整合功能;同时第二款Android手机HTC Made上市,Android手机的使用者开始增多。
2009年9月15日,1.6版本(Donut)发布,该版本重新设计了Android Market并增加了对CDMA网络的支持和文字转语音系统。
2009年10月26日,2.O版本(Eclair)发布,此版本系统的手机内置功能非常完善,使得摩托罗拉手机Milestone热销并开始有超越竞争对手的趋势,同时Google发布了第一款自有品牌的手机Nexus One。
2010年5月20日,2.2版本(Froyo)发布,该版本系统支持Adobe Flash 10.1,最大的改进是对Dalvik虚拟机添加了JIT编译器,提高了虚拟机的执行效率。
2010年12月6日,2.3版本(Gingerbread)发布,此版本系统增加了一些新的功能,如:多点触摸、支持多个摄像头和更多的传感器、改进的复制粘贴功能并优化了电源管理。
为了迎接平板电脑的热潮,Google在201 1年2月22日推出3.O版本(Honeycomb)专供平板电脑使用,系统针对平板电脑重新设计了用户界面并添加对多核处理器的支持。
目前,2.2版本系统在现有Android设备中的使用率最高,其次则是2.1版本。
除此之外,其他版本系统的使用率都不高,根据Ooogle最新统计,只有3%和4.8%的Android手机仍然运行1.5和1.6版本的系统,而最新的2.3版本系统仅仅被极少的产品使用。
1.2.2基于MIPS架构的Android系统 Android平台最初是专门为手持设备而设计的,目前的手持设备市场,Android系统主要采用基于ARM处理器的硬件平台,高通、飞思卡尔、Marvell、TI、瑞芯微等公司都已推出基于ARM核的应用处理器,并推出相应比较成熟的Android解决方案。
将Android部署在数字电视、移动互联网设备(MD)、数码相框(DPF)和机顶盒等数字消费设备上,需要解决很多问题,例如:如果在机顶盒上播放高清视频,这需要利用设备SoC上的硬件加速功能,因此必须增强Android系统的多媒体功能,以支持播放高清视频和多声道音频。
MIPS科技公司作为数字家庭设备领域的业界事实标准处理器内核供应商,正在带头解决这些挑战,MIPS科技公司与开放嵌入式软件基金会 (OESF)的成员公司合作设计基于Android平台的嵌入式系统方案,开发人员可以基于这个方案快速优化针对特定平台的系统,降低软件成本,缩短上市时间嘲。
第一章绪论 2009年10月,MIPS科技公司完成了基于MIPS架构Android 1.5版本系统的初步移植工作,并公开了移植后的源代码,完成的工作包括:1)制作用来编译MIPS平台Android系统的交叉编译工具链,确保编译出能够在MIPS平台运行的内核和系统镜像;2)集成Android内核补丁到Linux 2.6.32内核版本,并将Android所需的驱动移植到相应硬件平台;3)移植Dflvik虚拟机到MIPS架构,添加虚拟机解释器相应的mtcp优化代码模板,并优化运行时库;4)添加基于MIPS架构Android的C库Nome和链接器linker;5)对Android SDK添加对MIPS架构的支持H1。
同年1 1月MIPS科技公司为业界标准MIPS架构推出适用于Android移植套件的Arriba(Arriba for Android Porting Kit,ArK)。
Arriba APK是一套工具集,可实现并加速Android系统到基于MIPS平台硬件的移植。
从硬件设计到最终的产品部署,该套件可扩展Android SDK的功能,为代码开发提供前所未有的可视性。
Arriba APK也是首款全集成、多语言的嵌入式开发环境,完全支持Java、C/C++和Linux的开发、调试和部署。
Arriba APK可以在Android系统库、Lmux内核、设备驱动程序,以及Dflvik虚拟机等所有层面的代码中设定断点,分析所有程序变量,并检查调用栈、寄存器内容,利用这样的可视性与控制能力,Arriba APK能够缩短开发时间,降低软件风险及成本。
2010年3月,MIPS科技公司完成Android 2.0版本的移植,并免费提供基于模拟器的Arriba APK。
2010年9月,MIPS科技完成Android 2.2版本的移植,完成工作包括:1)升级交叉编译工具链到GCC4.4,对系统添力nX/d,端模式和软/硬浮点支持,并添加主机64位编译环境的支持;2)为Dflvik虚拟机添加JIT编译器,并进行优化;3)针对DSP硬件优化Android图形系统SEa。
目前,Android在MIPS移植上的工作已经提交到Android社区。
基于MIPS的SoC在高清多媒体功能的出色表现,配合Android平台的可定制特性,MIPS平台的Android系统将能够实现数字家庭及其它领域的下一代联网多媒体设备。
1.3本文的工作 本文主要研究和分析了Dflfik虚拟机在龙芯平台上的移植和初步优化工作,具体的工作包括以下几个方面: 1、研究了Dflvm虚拟机相关的各种技术。
Android是一个庞大的软件集合,作为Android运行时环境核心功能部件的Dalvik虚拟机与多数的Java虚拟机不同,它采用了全新的指令集和可执行文件格式,并且在内.部实现结构上也异于Java虚拟机。
4 中国石油大学(华东)硕士学位
论文 2、分析Dalvik虚拟机的内部实现。
以Dalvik虚拟机的各部分组成以及运行过程为线索,分析了Dalvik实现的源代码,包括类加载和解析的实现、常量池解析以及解释器模块的实现,该部分的研究是龙芯平台Dalvik虚拟机移植和优化的基础。
3、基于龙芯平台Dalvik虚拟机移植实现。
搭建龙芯平台Dalvik调试环境,使用GDB工具调试运行Dalvik虚拟机,确定其在龙芯平台Dalvik解释器运行的问题,然后将Dalvik移植到龙芯平台。
4、针对龙.