第三章 实现Eclipse Android与J2me平台切换(下)

clip_image001

首先,咱们介绍如何自定义WTK模拟器,由于默认的WTK模拟器老是有不尽如人意之处,好比,DefaultPhone的全屏高度就不是正好的320的高度,而是由于在界面顶端放置了一个标题,致使全屏高度总会小于320,所以,咱们须要消除这种问题,让咱们的屏幕呈现正好的240*320的尺寸。或者遇到其它一些问题的时候,咱们均可以打开C:\WTK2.5.2\wtklib\devices\下相对应模拟器的文件夹下面的配置文件“*.properties”进行修改,里面的具体参数我就不一一解释,你能够看里面的英文注释。为了节约你的时间,也让你能够偷懒,你能够到个人工程站点http://code.google.com/p/cyclone2d/downloads/list里面找到“WTK自定义模拟器”,下载后解压到“C:\WTK2.5.2\wtklib\devices\”目录,这样,你就多了一个本身定义的模拟器了,你能够从Eclipse里面从新搜索并发现它。
image并发

对于你如今已经存在的J2me工程,若是须要使用这个模拟器的话,咱们还须要在设置一下,工程名上右击-属性->Java ME,而后在选中活动的Configuration,点击右侧的Edit,进行以下配置,即选择咱们刚才搜索到的模拟器。
clip_image004性能

接下来,咱们介绍另一种J2me模拟器,叫KEmulator,它不是Sun的产品,可是彻底能够用做咱们开发时使用,咱们几乎能够不使用WTK来进行开发,只有在遇到某些特殊状况(好比打包)的时候,才会须要使用WTK。学习

首先,从C2D工程站点下载“KEmulator”,下载以后解压,放置的路径最好不要含有中文。个人路径是“E:\GameProjects\Tool\KEmulator”,接下来,咱们学习如何使用。ui

新建一个Java工程,New->JavaProjectgoogle

clip_image006

而后在工程上右击->New->SourceFolder,填入res,新建一个res文件夹.net

clip_image008

接下来,为咱们的Java工程引入KE的库,在工程名右击->Properties->Java Builder Path,选择Libraries选项卡,点选“Add External Jars”,而后找到并加入咱们解压目录下的“Kemulator.jar”文件,如图:code

clip_image010

接着把咱们的源码和目录从J2me工程拷贝过来,放在该工程相应目录下。游戏

如今,咱们能够来运行当前的工程了。打开Run->RunConfigurations,在Java Application上面双击,在Main选项卡进行以下配置:ip

clip_image012

别着急Run,还须要在Arguments界面作以下配置:内存

clip_image014

其中必须的两条语句,一条指定了class path,默认是工程下面的bin目录,另一个指定启动Midlet。如上设置完毕以后,咱们能够点击Run,会看到以下画面:

clip_image016

至此,KEmulator配置完毕。KE提供了WTK所不具备的一些性能统计、内存监视等对开发很是有帮助的功能,能用好这个模拟器对J2me开发会有很大帮助。

clip_image001[5]

经过前面的例程,咱们会发现若是咱们的开发过程若是兼顾Android和J2me的时候,咱们须要创建多个工程,当咱们针对同一平台的不一样机型时,极可能咱们还须要分出更多的工程来,这样咱们将会面对N多的工程,代码的维护、bug的修改、产品的升级,将会变成一场灾难,咱们会被淹没在各类工程中间。咱们必须解决这种问题。

首先,咱们应该尽可能减小工程的出现,将可以放在一块儿的代码所有放在一块儿,可以放在一块儿的资源也所有都放在一块儿。接下来,我介绍若是只维护一个资源文件夹以及一个代码文件夹的状况下,咱们可以作到兼顾的Android和J2me平台的开发,甚至使用一样这套代码便可应对多个机型甚至渠道的发布问题。

由于咱们知道若是想在Eclipse里面把资源打包到Android的应用程序APK文件中的话,咱们必须把资源放在Android工程的Assets文件夹中,然而代码咱们就能够不用必定要放在Android工程下面了。另外由于引擎代码通常咱们也不会修改,所以咱们应该把它跟咱们的具体项目代码分开,省得他被随便改掉。咱们针对公司的全部游戏项目维护一套引擎的话,有利于技术累积、避免重复开发以及规范化,咱们来演示一下操做过程。

首先,创建一个文件夹用来存放引擎源码,好比我放在“E:\EngineProjects\Engine\C2D_Com\C2D_Com_Engine \sourcecode\engine”,接着,咱们再创建一个文件夹,用来存放当前项目代码,如我放在“E:\EngineProjects\Engine\C2D_Com\C2D_Com_Engine\sourcecode\example”,而后,咱们把Android工程下的src删掉,保留Asstes,咱们把资源放它里面。而后,咱们将源码从外面连接到工程里面,右键点击工程名­>Properties->Java Build Path,在Source选项卡,咱们点击“Link Source”,而后选择咱们引擎源码的目录,本身定义一个顶级包名(即在打包后不存在的最顶层的文件夹名称),

clip_image002[5]

这样,全部engine下面的代码将出如今如今的工程里面,就跟出如今src里面的效果是同样的。咱们如今不须要src,聚集各方代码天然造成了src。接着,咱们就是将项目代码使用一样的方式连接进来,最终如图:
clip_image004[5]

这样,咱们就是在Android工程下面的全部代码都是来自于外部了。

接着,咱们对J2me工程使用类的操做,删掉src和res,引入外部代码,而后不一样的是,将Android工程下的Assets目录连接到当前的J2me下面做为res,如图:

clip_image006

这个时候,若是你的代码报错了,就Clean一下,Antenna会自动从新转换你的代码,让它适应成J2me的版本。

固然,若是这时候你的Android工程是开着的,你会发现Android工程下的代码会报错,由于大家如今共享着同一套代码,在J2me工程里面它被改动了。因此这个时候你最好是同时只开着一个工程,关掉另外全部的共享代码的工程。由于其实你也没有必要同时开着不少工程。当须要另外工程的时候,再切换过去,Clean一下就行了。

如今你的工程已经实现共享代码了,也实现共享资源了。咱们把KE工程也如此设置

clip_image008[5]

固然也要给KE工程加上Antenna预处理。

好了,至此,咱们已经能够任意打开一个工程,而后Clean就能够得到该平台下的编辑环境了,并且代码的改动会同时反馈到其它全部的工程。固然,对于不一样的平台,你须要当心地加上预处理参数以面报错。还好的是C2D引擎已经封装了大部分功能平台相关的内容,你几乎不太会用到跟平台相关的API,除非你决定不用Java了。

(想看清晰版本,到个人工程网址去下载吧http://code.google.com/p/cyclone2d/

相关文章
相关标签/搜索