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

  本章概要:  php

1EclipseJ2me开发环境搭建html

2、实现J2me环境下运行C2D引擎java

3、使用自定义的WTK模拟器和KE模拟器网络

4、分离引擎,实现J2meAndroid快速平台切换oracle

 

clip_image001[10] 

 

预先说明,本章示例在Windows下面编写,MAC的同窗过程大体相同。另外就是有一个提示,咱们在安装Eclipse插件或者更新一些SDK的时候,因为咱们须要链接到国外,所以咱们网络会变得很脆弱,这个时候你就最好不要使用无线网络了,直接插上网线吧,由于那样只能使得网络更加脆弱,容易致使莫名的更新失败。另外这里的引擎代码请使用GoogleCode上面1.1以上的引擎包。app

要开发J2me应用程序,咱们首先须要搭建J2me应用程序开发环境,实际上也就是要安装J2meSDK,即WTK以及一个插件叫MTJ的插件。eclipse

    首先咱们安装WTK,在Oracel的网站上找到WTK的下载地址:工具

http://www.oracle.com/technetwork/java/javame/javamobile/download/sdk/index.html学习

我如今看到的最新版本是3.0.5,咱们作游戏有经验的同窗都知道,WTK并不是越新越好,由于越新的WTK须要的JDK也就越新,有时候须要针对的手机终端对应的JDK的版本比较低,那么咱们就必须使用低的JDK进行打包,有时候可能还得用回旧的WTK,固然若是你知道怎样去在打包时指定JDK版本甚至知道如何手动使用Jar指令去打J2me的包,则另当别论。另外跟插件的兼容性也有关系,如今的Eclipse插件MTJ彷佛还不支持WTK3.0以后的版本,会发现找不到模拟器的问题,咱们索性仍然使用旧的版本2.5.2,下载地址在这里
http://www.oracle.com/technetwork/java/download-135801.html
网站

咱们下载这个版本,不须要注册

clip_image003[10]

好像官网上能下到的最老的版本也就是2.5.2了,它的JDK要求是1.5.还须要再老的话,本身去搜索吧。

下载完成以后,就是安装了,最好就按照默认的状况安装,默认安装在C:\WTK2.5.2
安装完成以后,在C:\WTK2.5.2\bin,咱们能够看到不少的exe文件,这些文件包括了模拟器,设备管理器等等,在C:\WTK2.5.2\apps下面,咱们能够看到不少的工程源码,这里是WTK自带的示例工程,也是咱们学习J2me的很好的资源。C:\WTK2.5.2\lib,这个目录是J2me的库,包含了不少jar文件,C:\WTK2.5.2\wtklib这里是工具库,也就是WTK工具所须要的库,并不是咱们最终打包成的J2me应用程序所须要的库。在C:\WTK2.5.2\docs,这里是J2meAPI文档。在C:\WTK2.5.2\toolkit-lib\devices,这个目录包含了模拟器配置,在其下面的每一个文件夹,对应一个模拟器外观,在任意的文件夹内部,咱们能够看到.properties结尾的文件,它即是存储了此模拟器的配置信息,咱们能够经过修改这个文件,达到咱们本身手动配置模拟器的目的。
   
安装好模拟器以后,咱们其实能够启动bin目录下的那些可执行文件,例如启动模拟器使用ktoolbar.exe。也可使用命令行来启动一些校验等工具,可是若是你是新手,如今应该还不习惯用命令行这么作,其实开发过程当中,咱们也不多须要这么作,除非你本身去写WTK的打包过程。接下来咱们先安装一个Eclipse插件,叫作MTJ,有了它以后咱们能够从Eclipse
中的工程去启动模拟运行。

         MTJ插件主页在这里:http://www.eclipse.org/mtj/

咱们可使用前面章节讲过的安装Eclipse的插件的方法来安装MTJ,就是在Install New SoftWare界面,从http://download.eclipse.org/mtj/updates/1.1.2/stable/这个网址去安装插件,具体过程我就不去详述,能够参考前面安装ADT的过程。
clip_image005[10]

上面这幅画面在个人电脑上持续了大概5分钟,因此你也耐心点吧,会过去的,只要进度条开始走动,后面就快了,整个安装过程我这里持续了10分钟左右。

    安装以后,要求重启Eclipse,重启事后,打开Window->Preferences,会看到增长了一个Java ME标签,如图:
clip_image007[10] 

其中WTK Root就是咱们须要提供的WTK安装地址,这个是必需要填写的,若是咱们须要针对咱们的应用程序进行混淆,咱们须要下载Proguard,这是能够混淆咱们的J2me应用程序代码的一个工具,下载地址在这里:
http://proguard.sourceforge.net/

下载完成以后,解压缩好放在某个地址,而后将路径拷贝到Proguard Root Directory里面就能够了,像我上图作的那样。至于Antenna,在这里,MTJ自己也是能够集成Antenna的,或者也能够单独安装这个插件,这个问题咱们稍后再讨论。(上面的Antenna路径能够不填,除非你本身已经会使用了,你本身来决定怎么样使用)

    接下来,选中“Java ME”下面的“Device Managerment”,这里用来导入咱们在WTK中创建的模拟器,点击右侧的“Manual Install…”,找到咱们的WTK的安装目录,个人目录是C:\WTK2.5.2,指定给它以后,它会自行搜索目标目录下的全部模拟器,结果以下图:

clip_image009[10]

肯定以后,咱们便配置完成了MTJ的插件。

    接下来,咱们演示一个J2me工程的运行示例。File->New->Other挑选Java Me->MIDlet Project,如图:
clip_image011[10]

接着,为咱们的工程设置名称,并选择咱们的模拟器
clip_image013[10]

而后,就是为咱们的J2me应用程序设置名称,以及目标的CLDCMIDP版本
clip_image015[9] 

直接点击Finish,完成以后咱们能够看到一个新的J2me工程创建完成。

可是此时尚未任何代码,咱们知道J2me的启动类叫MIDlet,所以,咱们在src文件夹上点击右键->New->Java ME MIDlet,进入咱们的启动类设置
clip_image017[9]

点击Finish以后,咱们的启动类就加好了,默认添加了一些方法。
开是模拟器执行,打开菜单Run->RunConrigurations->双击Emulated JavaME MIDlet
,设置成如图配置
clip_image019[9]

而后点击Run,能够看到咱们的模拟器启动了,虽然只是一个空白屏幕。
clip_image021[9]

 

  至此,咱们的J2me开发环境就配置完成了。

 

 clip_image022[9]

    在咱们的J2meHelloWorld工程上点击右键->Refactor->Rename,填入“C2D_Com_J2me”后肯定,此时将重命名咱们的工程。而后展开src下面的java代码,在HelloWorld.java上点击右键->Refactor->Rename,填入 MainMidlet”,后肯定。这些过程是为了让咱们把配置作的跟Android工程能够互相交换代码,固然在此时的Run下面的Midlet路径也须要更改一下。

clip_image024[9]

到目前为止,咱们其实仍然是那个Helloworld的工程,只是更换了名字而已。接下来,咱们把Android工程源码src目录的内容拷贝到本工程的src下面,注意,在Android工程下面的game.core包裹上面拷贝(或者直接拷贝Windows文件夹),而后选中本工程的src进行粘贴,此时会出现一个警告,询问是否覆盖,点击肯定覆盖。引擎文件夹也使用如上的方法进行拷贝粘贴,由于af下面的文件夹多,因此能够多选之后复制,在本src进行粘贴。完成以后,是代码拷贝完成了,接下来,选中Android工程下面的assets里面的全部内容,粘贴到当前的res目录,完成资源的拷贝。完成后的工程如图所示:
clip_image026[9]

这个时候,会出现不少的红叉叉,表明java代码有错,如今没关系,是由于咱们尚未使用预处理工具来进行预处理。

    接下来,咱们须要安装一个叫作Antenna的工具,也是一个Eclipse插件。关于Antenna的使用方法见这个页面
http://antenna.sourceforge.net/wtkpreprocess.php
,它是用来预处理Java代码的一个工具,相似C里面的预处理,提供了#define #ifdef等指令,不过由于若是直接写这样的代码,java代码确定报错,所以就在前面加上了//,看起来为注释,Antenna
则去读取他们进行预处理。

具体的安装方法也在下方有介绍,其实也就是前面咱们讲过的通常安装Eclipse插件的过程,插件安装地址是:
http://antenna.sf.net/update

安装过程在此不作详述。

    安装完成以后,此时即可以应用Antenna了,咱们在工程上点击右键,而后勾选Antenna Preprocessor,这个表明你的工程已经加入预处理了。可是此时代码报错好像变多了,这是由于咱们虽然指定了预处理,可是尚未指定预处理的参数。此时,若是咱们打开工程属性,点击Antenna,会出现下图所示:
clip_image028[9]

Key-Value这种键值对存放的就是预处理参数,这些参数是存放在Antennaxml配置文件里面的,至关于“固定参数”,咱们只能经过边上的search来进行选择不一样的配置,一旦配置不一样,这里的key-value也将彻底不一样,上方的Defines是至关于“手动参数”,它的参数名称若是跟下方的“固定参数”相同,则会覆盖他们。固然此时你search的话,也不会改变什么,不会去掉工程里面的错误,咱们还须要进一步处理。

由于我在Antenna里面添加了引擎所需的一些参数配置,所以须要大家将个人一些参数更新进去,你能够打开googleCode上下载的那个包裹,里面提供了一个名叫“antenna.eclipse.preprocessor_1.1.8.jar”的文件,你将它拷贝,而后覆盖到你的Eclipse安装文件夹下面的plugins目录,替换掉原有文件,而后从新启动eclipse,重启的时候注意添加clean参数,你能够在命令行里面输入相似“D:\DevTools\eclipse-SDK-3.7.1-win32\eclipse.exe -clean”这样的命令来启动你的eclipse,也能够在快捷方式上面设置,以下图,在目标后面添加” -clean”,这样的话,每次启动Eclipse都会刷新一下Eclipse插件。
clip_image030[10]

重启Eclipse以后,咱们再打开刚才的Antenna设置界面,再次进行Search,如图

clip_image032[9]

此时,已经看到我设置的一些咱们经常使用的机型了。里面的参数都是我一一记录的。固然也有可能有些问题,大家使用的时候再当心检查吧。咱们选择“Nokia/N73”以后肯定。此时,咱们的代码就已经切换到了J2me版本了。而后使用前面讲过的方式进行运行。结果以下:
clip_image034[9]

clip_image035[9]此时,咱们能够按上下左右按键进行移动人物了,地图会随之卷动。

相关文章
相关标签/搜索