转载自: http://www.ismyway.com

该文应网友 romejian 的要求撰写,由于网上已有比较详细的中文电子文档来描述如何配置开发环境,因此,本文仅从补充说明的角度来完善一些细节,建议阅读此文前先阅读以上提供的电子文档。

通 常,我的 J2ME 开发工作是在 JBuilder 中完成的,虽然我也看过一些有关 Eclipse 配置 J2ME 开发环境的文档,但怎么都感觉过于繁锁,而且还要注意版本问题,与其将时间用在搭建开发环境上,还不如用于写点代码,并且,一旦开发过程中遇到某些问题, 至少我不用担心是开发环境没有配置好还是模拟器没有设置好问题。

好了,废话不多,开始进入正题了,通常, 我们可能是针对某一具体的手机进行软件开发,因此,环境的配置是针对具体厂家的具体型号的手机来说的,如果在你的程序中不使用厂商提供的 API ,或者换句话说,仅仅只使用标准的 MIDP1.0/2.0 , CLDC1.0/1.1 ,那么,直接使用 SUN 官方的 WTK 来进行开发环境配置即可。不过,依然不建议这么做,至少,不同厂商不同型号的手机在细节上还是会有一些区别的。

JBuilder 建议使用 9 以上的版本,目前我使用的是 JBuilder 2005 , JBuilder9 和 JBuilder X 也都用过,差别不算太大,因此,我以目前使用的 2005 来说一下各主流厂商的开发环境配置问题,由于个人也不敢说是精通,因此,肤浅的地方请大家指正。

WTK

使用 WTK 来配置开发环境是最简单的事情, JBuilder2005 中就自带的 WTK2.1 ,目前官方最新的版本为 2.2 ,可以从 SUN 官方站点上下载得到。

优 点:通常,使用 WTK 是由于 WTK 提供了对相当多 JSR 规范的支持,同时,对某些细节的支持也比较良好(如在 MOTO 4.3 中,创建带有 alpha 通道的图片常常会报错,导致模拟器崩溃,但在 WTK 中却没有这种问题,尽管在真机上这段代码是正确的)。也许目前市面上所有的手机都未能提供支持的 JSR 或者厂商还未能提供相应的 SDK 之前,使用 WTK 可以进行前瞻性的开发工作。另外, WTK 模拟器的运行速度比较快,占用资源少,机器配置不好的朋友可以在 WTK 中进行开发调试,在进入最后阶段时再换成相对应的 SDK ,可以节约许多时间。

缺点:分辨率为 240*320 ,但无法全屏,如果目标手机的分辨率与此不同,情况可就不妙了。

WTK 的配置我就不说了,上面提供的文档中已经说得极为详尽。

SIEMENS

SIEMENS 的 SDK 是我最早进行开发时使用的,可惜现在 SIEMENS 不再经营手机业务,并且,出的机器也无太多亮点,因此,不提也罢(真让人怀念 6688 上的 IO 系统,功能强大,远胜于现在的 JSR-75 )

NOKIA

NOKIA 有一统手机平台的野心,并且近来推出的手机,不管型号如何,也逃不过 S40 、 S60 、 S80 ( N9210 )和 S90 ( N7710 )平台,而目前市面上使用最多的莫过于载有 S40 或 S60 的手机了, S40 的分辨率通常为 128*128 或 120*160 ,个人感觉比较小,而 S60 支持 176*208 则比较合适(但仍没有 240*320 够用),虽然现在的 SDK3.0 可以支持 240*320 和 352*416 ,可惜我已转到 MOTO 上了,没有太多了解。

优点: NOKIA 模拟器给人的感觉是稳重,从安装后的大小就可以看出来了。 NOKIA 真实的模拟了整个手机系统,因此,模拟程度还是相当高的。

缺点:稳重从另一方面来说可以说是笨重,由于是模拟手机系统,因此,资源的开销较大,特别是使用中文版本的模拟器时,速度有点让人无法忍受( AMD1800+/ 512M )。

NOKIA 的 SDK 可以从 http://www.forum.nokia.com/main.html上 面载得到, SDK 可以分为几个版本,早期的是 1.2 ,需要注册得到序列号用于安装,后来就是 2.1C 和 3.0 ,通常我使用 1.2 进行开发调试,原因是英文版本的模拟器,运行速度比较快(但中文无法正常显示),直到最后需要发布时,才使用 2.1C 的模拟器做最后的调整( S60 上的连连看游戏)

模拟器的安装只不过是将文件 COPY 到指定目录,因此,安装好 SDK 后,一旦重新安装了操作系统,只要安装文件没有丢失,可以直接进行配置。

1、Tools->Confirgure->JDKs

2、配置JDKs的界面

3、在弹出的界面中选择New

4、选择安装后模拟器的路径,比如我的安装在C:\Series_60_MIDP_SDK_2_1_Chinese下

5、OK,配置完成,就是这么简单

当 你写完第一个程序后,开始进行调试的时候,需要注意的是,NOKIA 的模拟器调试程序时有个特点:不能使用.class 进行调试,而必须使用.jar 进行调试。也就是说,你必须先将程序打包才能调试运行。想想也是必然的:模拟器模拟的是手机环境,在手机环境中,执行的程序是.jar 。

好了,现在想象你已经完成了程序,先将程序编译,如果没有问题,可以进入下面的步骤了。

1、选择 File->New,创建.jar文件

2、完成相关的信息,可以一路Next下去,也可以直接Finish

Compress the contents of the archive(是否对打包的内容进行压缩),建议选上
Always create archive when building the project(当编译时重新生成包文件),对于NOKIA的模拟器来说,建议选上

3、关于对包进行混淆

Obfuscate the contents of the archive(是否对包中的类进行混淆),混淆有作用是防止反编译,并且可以减少文件大小,不过,在程序调试期间,建议不选,影响速度,但在发布的时候一定要选上,否则……

4、生成包,此步操作会在当前文件夹下生成相应的.jad和.jar文件

5、建立一个调试/运行配置(不太好描述)

6、同样,填写相关信息,记得修改Type为MIDlet,并且选择JAD file运行方式

7、OK后,可以看到如下画面

8、现在可以调试/运行这个程序了

注意:在NOKIA SDK1.2中混淆常常报错,建议发布时使用其它版本的SDK进行混淆

MOTO

和 NOKIA 不同, MOTO 手机型号分类感觉有些乱,可能是型号比较比较多的原因吧,但是 MOTO 的模拟器文件却比 NOKIA 要小一些,而且一个 SDK 基本上包含了 MOTO 各种型号的手机开发环境。

优点:和 NOKIA 相比, MOTO 的模拟器可以说是轻灵,由于只模拟JVM 环境,因此运行效率要高得多。

缺点: MOTO 对开发的支持似乎不是太好,文档变动比较大,而且文档本身存在偏差(比如文档上指出 E680 支持 Lighting 类,然而在真机上却无法实现)

环境配置同 NOKIA 相差不大,只不过 MOTO 的 SDK 中提供众多型号的手机,因此要选择正确的开发包,如 E680 就在EmulatorM.3文件夹中。

在Target device中选择E680_E680i

需要注意的是,在 JBuilder 9 中, MOTO 的 E680 模拟器无法正常启动,对于这个问题,我也不得其解。

MOTO不需要使用.jar 进行调试,因此,打包工作可以留在最后完成。

E680支持文件访问,在模拟器中,其文件的根目录在对应开发包的 Devroot下,因此,如果在开发过程中需要使用文件系统支持,可以建立相应的文件夹

在 MOTO4.3 的 SDK 中, MOTO 还提供了com.motorola.io类的支持,可惜不知道由于什么原因,在后来的版本中又删除了这些类和相关文档,如果你目前希望使用 SDK 5.2.1 ,却也希望保留com.motorola.io类,可以将 SDK4.3 中的 lib\midp.zip 中的 com\motorola\io文件夹添加到 SDK5.2 中,同理,如果需要在WTK中使用MOTO的com.motorola.io类,也可以做上述处理。

其它机型

另外,我使用过的还有 NEC 的 N840 模拟器,感觉和 WTK 一样,没有很特别的地方,因此,也就不提了。

我碰到的问题

  1. 在Anyview的开发过程中,虽然模拟器提供了完善的支持,然而,在真机运行上总是报内存溢出,看了文档后才发现真机上的HEAP才2M。
  2. 在真机上的文件访问速度速倍于模拟器,这是让人始料不及的