英语原文共 9 页
WIPI-to-Android自动移动设备游戏转换器用于异构内容的兼容性移动操作系统的设计和实施
关键词:WIPI-to-Android转换器、自动化移动设备游戏转换器、WIPI、Android、资源转换器、平台映射引擎、源翻译器
摘要:鉴于移动通信公司选择移动平台的不同,游戏开发商必须创建为各个平台专门设计或使用转换过程为消费者提供相应游戏内容。本文为了解决这个问题,设计了WIPI-to-Android自动手机游戏转换器。它旨在将功能手机的WIPI(无线互联网平台互操作性形式)中的游戏内容自动转换为可适应智能手机的Android平台。通过WIPI-to-Android转换器,可以转换图像和声音等资源,应用程序接口可以使用平台映射引擎转换,源代码可以使用源代码转换器进行翻译。以上和其他所有内容的转换功能都进行了测试。测试结果表明图形,图像输出,声音输出,以及转换后的Android游戏的其他功能效果等同于WIPI转换前的游戏。此外,大多数转换后的Android比WIPI游戏内容响应更快。
1、介绍
近年来,随着智能手机的出现,手机游戏市场正在快速发展。与此同时,游戏内容成为了移动市场的杀手锏。然而,移动平台的不同要求游戏的反复开发或转换游戏内容以满足多平台的适用[1-3]。
而且,在移动市场中,这些外观各有不同智能手机平台,如Android,iOS和Windows Phone迫使游戏开发者反复地开发相同的游戏内容以确保与每个可用平台的兼容性。并且每一个在已存在的功能手机平台上开发的游戏必须被重新创造以适应智能手机。因此,需要投入相当多的时间和费用去分析和转换智能手机平台上适用的游戏源代码和资源[4,5]。
在本文中,为了解决这个问题,设计了WIPI-to-Android自动移动游戏转换器系统以将功能手机的WIPI平台上的游戏内容转换为适用于智能手机的Android平台的内容。WIPI-to-Android转换器包括内容分析器,资源转换器,源翻译器和平台映射引擎。内容分析器将WIPI的 Java内容划分为源文件,资源文件和其他文件。资源转换器是一个将游戏所用文本、二进制资源数据转化为目标平台文件系统可以使用的图像、声音和用户数据的系统。源转换器接收WIPI的Java内容分析器输出的源代码并将其转换为在语义上等效的Android源代码,且转化后的代码与之执行相同动作。该平台映射引擎是一个提供API函数的系统,它允许重新创建以前平台的执行环境使用目标平台的包装函数。为此,API的功能,系统变量,事件环境等以相同的形式提供支撑,以便转换后的源代码易于理解和修改。
通过将已有手机游戏自动转换为智能手机游戏内容,已有游戏可以被快速移植到不同的平台。这将节约服务于不同通信公司的人力资源、时间和费用。作为结果,游戏内容的可重用性提高,并减少人工,时间和成本。
2、相关研究
2.1 WIPI
WIPI由韩国无线互联网标准化论坛立法,并被韩国电信技术协会选为应用程序执行的标准移动通信平台的环境。因为移动通信公司各自使用不同的平台,游戏开发公司重复不同平台的内容开发而遭受巨大负担。此外,用户使用内容的权利受到限制,手机制造商也不得不开发新手机。因此,对标准化的需求出现了,韩国制定了针对无线互联网平台的标准。图2.1描绘了一种WIPI平台的系统结构[6]。
图2.1 WIPI平台的系统构造
WIPI支持用于应用程序开发的C语言和Java语言。对于Java,字节码程序是使用提前编译器重新编译然后对于每部手机在本地机器执行。WIPI标准可以大致分为手机适配层(HAL)和基本API。HAL是一个能提高可转移性的标准化硬件抽象层。另外,因为它是硬件独立的,所以它可以在没有连接到本机系统的情况下执行。仅使用标准化的HAL和API,WIPI可以实现运行时引擎,并且一个基本的针对C语言和Java的API可以在其之上创建。
2.2 Android
Google开发的Android平台是一个完美结合了操作系统、中间件和应用程序的最优化的移动设备平台。Android平台采用了开源策略,它包括Linux内核,库,运行时环境,应用程序框架和应用程序。图2.2描绘了Android平台的层次结构和组件[7]。
图2.2 Android平台的系统构造
Linux内核使用核心系统服务,例如Linux的2.6版本,其中包括安全性、内存管理和进程管理、网络堆栈和驱动程序模型。内核作为硬件和软件之间的抽象层。该库由C和C 组成,并提供C系统库、媒体库、3D库等。应用程序构架是由Java组成的包组件;应用程序可以使用此框架的包创建。
Android平台的所有应用程序使用Java创建并通过Java编译器转换为类文件。之后再次转换为Dalvik可执行文件(DEX)文件,可使用Dalvik虚拟机执行。
2.3 现有手机游戏转换器
到目前为止,尽管移动市场非常活跃,但仍旧缺乏对移动内容转换器的研究,所以我们有很少可以参考的例子。此外,用于现有内容的转换器通常只允许具有相同程序语言环境的内容的转换或完全不允许自动转换。实际情况是程序员必须手工识别内容。
使用XML的现有移动游戏内容转换器试图转换Java内容[8-10]。另外,API用于源代码转换的函数是封装函数的模仿和重新定义。因此,如果同样的函数被使用的话没必要转换源代码。BREW的C语言和WIPI的C语言的相互转换[11],GVM的C语言转换为BREW的C语言的转换[12]已经经过测试。但是,这些研究存在缺陷——由于源代码不是自动转换的,因此用户必须进行干预并手动转换。
另一方面,已经尝试过使用编译器编写系统[13-15]对移动游戏内容进行自动转换的研究。一种通过将GVM平台的C语言内容转换为WIPI C,Java或MIDP Java语言以提高游戏内容可重用性并且增强效率的方法已经被建议[1]。此外,为了适应日渐成熟的像Android和IOS操作系统[4,5]的智能手机市场,正在进行其他研究以转换现有移动游戏内容。例如,WIPI-to-iOS转换器、WIPI-to-Android转换器、GNEX-to-iOS转换器、GNEX-to-Android转换器、Android-toiOS转换器和iOS-to- Android转换器系统。
3、WIPI-to-Android转换器
WIPI-to-Android自动移动游戏接收WIPI源代码形式的游戏内容并将其转换为在Android平台上可以运行的源代码形式。图3.1显示了WIPI-to-Android移动游戏内容自动转换器系统的模型。
图3.1 WIPI-to-Android转换器系统
对于源级别的自动转换,首先是源代码必须被转换为主题平台下执行相同动作的源代码[16]。其他数据,像图像和声音,也必须被转换为在新的目标平台可以使用的形式。此外,为了保持等效的编程和事件环境必须提供WIPI Java的API[17,18]。
3.1 内容分析器
WIPI Java内容分析器[1,19,20]接收WIPI Java内容作为输入并进行分析,以便可以轻松转换为Android平台的内容。然后它将文件划分为源文件、资源文件和其他文件。WIPI Java内容分析器包括了一个资源文件、源代码文件和其他文件相分离的内容分析阶段。图3.2显示了WIPI Java游戏内容分析器的模型。
图3.2 WIPI Java游戏内容分析器
图3.3显示了内容分析器的结果。内容分析器创建一个包含原始文件夹中所有文件副本的Converter文件夹,以防止更改原始文件,然后按上述方法对文件进行分类。
图3.3 WIPI-to-Android内容分析器截图
3.2 资源转换器
资源转换器[19]是一个将文本或二进制形式的资源数据转换为在目标平台文件系统上可以使用的图像数据、声音数据和用户数据的系统。每个平台使用的图像文件格式(例如,BMP,PNG,JPEG),声音格式(例如,WAV,MP3,MMF)和用户数据必须被重新搜索及转换以便在目标平台使用。
WIPI-to-Android资源转换器接收、分析包含像图像和声音文件的WIPI Java内容,将其转换为目标Android Java平台的文件格式并生成新文件。图3.4展示了资源转换器系统模型。
图3.4 资源转换器系统模型
资源转换之后,资源转换器会创建与Android项目相关的所有文件,可以从Android软件开发工具包中启用直接方法,并且转换后的资源可应用于项目。在Android中,资源文件名是有限的:只有“a–z,”“0-9,”下划线(_)和逗号(,)可以使用。因此,在WIPI Java中使用的资源中,大写字母有时必须更改为小写。资源转换器检查每个资源文件名并
进行这些更改,或将特殊文本更改为可替代的。图3.5显示了资源转换器的结果.
图3.5 WIPI-to-Android资源转换器截图
3.3 源转换器
源转换器[4,18]接收WIPI Java源代码内容分析器输出并将其翻译为语义上等效、执行动作和WIPI Java源代码相同的Android Java源代码。因为WIPI Java和Android都是基于Java语言的平台,他们得语言特性是一样的。但是,有些部分已经改变以适应每个平台的虚拟机。
创建源翻译器是为了克服平台之间的差异性并用编译器编写技术自动翻译游戏源程序。编译器技术分析编程语法和句法并提供一种自动转换为其他语言的方法[13,14]。图3.6显示了源转换器模型。
图3.6 源转换器模型
源代码翻译器大致可分为源代码分析模块和源代码转换模块。源代码分析模块接收WIPI Java源代码作为输入然后执行词法和语法分析以创建抽象语法树(AST)。源代码转换模块搜索AST且生成语义和WIPI Java源代码相同的Android Java源代码。
3.3.1 源代码分析模块
源代码分析模块是源转换器的第一个组件。它接收WIPI Java源代码作为输入,执行词法和句法分析,输出句子结构作为AST,并将AST传递给源代码转换模块。图3.7说明了此模块遵循的过程。
图3.7 源代码分析模块
源代码分析模块由词法分析器和语法分析器组成。词法分析器对WIPI Java源代码进行分类将其编码成具有语法意义最小单位的令牌。然后它分析源代码并将结果传送给语法分析器。在两个分析器之间传输的令牌信息由令牌号和令牌值组成。令牌号是唯一的,可用来区分不同令牌。每个令牌的值实际上常被程序使用。表3.1显示了词法分析器的令牌分析输出结果。令牌信息以(令牌码,令牌值)的形式呈现。
表3.1 令牌输出结果
语法分析器使用来自词法分析器的令牌信息和被解析表生成系统(PGS)创建的解析表分析程序的语法。有关不正确的程序的错误信息是输出;对于正确的语法,给出AST形式的结果并被源代码转换模块使用。表3.2展示了被语法分析器创建的AST信息。
表3.2 AST信息
3.3.2 源代码转换模块
资源转换器接收来自资源分析模块的AST作为输入,检查树的每一个节点,并创建和在WIPI上以相同方式执行的安卓平台的源代码。由于这个模块是为了分析格式一致化的AST设计的,创建一个匹配所有程序结构的输入是可能的。图3.8显示了源转换模块的执行过程。
图3.8 源代码转换模块
在接收作为输入的AST后,这个模块从树的最重要的根开始连续的搜索。在搜索过程中,如果出现重要节点,模式匹配源编译器接收这个节点并将其转换为安卓平台的源代码。整个AST搜索过程完成后,模式匹配源编译器分析所有节点并创建一个包含每一段转换源代码的安卓源代码独立文件。
图3.9是源转换器屏幕。一系列WIPI Java文件被转换后显示在右侧,转换的安卓文件显示在左侧。单击转换按钮,源转换器自动转换源文件。
图3.9 源转换器的屏幕截图
图3.10是一个搜索词法分析器创建WIPI Java程序的AST并转换为安卓Java程序的示例。
图3.10 AST和源转换器
3.4 平台映射引擎
平台映射引擎[20]创建一个与WIPI Java相同执行环境的安卓平台以便相同的环境可以相同地执行。因此,WIPI Java能够在安卓平台上以其原始的形式运行。在创建的执行环境的基础上,提供封装函数格式使WIPI Java的API在安卓平台同样执行。
源转换器的唯一功能是将WIPI Java平台的源程序自动转换为安卓平台的源程序。然而,转换的程序不能在安卓平台上立即执行。首先,WIPI Java的API、系统变量和系统环境中使用的源代码必须转换或
资料编号:[5377]
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。