目前,移动开发已经成为开发者社区最为引人注目的新技术。移动互联网蕴藏的巨大商机以及嵌入式开发的神秘色彩使得越来越多的程序员开始学习和研究移动开发技术。J2ME、Symbian、Windows Mobile、BREW是目前主流的技术平台,其中J2ME凭借其开放的特性占据了绝对的市场,成为了移动开发领域的标准。相比其他平台,J2ME的参考资料也更丰富,更适合初次涉足此领域的开发者入门。
所谓工欲善其事,必先利其器。本文主要讲述目前主流的用于开发J2ME应用程序的开发工具,包括SUN Wireless Toolkit 2.2、Netbeans IDE 4.1、Eclipse 3.1和JBuilder。通常,开发应用程序的时候都会针对具体的目标平台,比如Nokia Series60系列。如果可以把第三方的SDK集成到我们熟悉的开发工具中,必将方便调试和测试,缩短软件开发周期。文章最后讲解如何将第三方SDK集成到开发工具中。本文使用Windows XP操作系统并假设读者已经正确的安装了J2SDK 1.4.2或者更高版本。
SUN Wireless Toolkit 2.2 WTK是一系列工具的集合,包括Ktoolbar、模拟器和辅助工具,使用它们可以为移动电话或者其他嵌入式设备开发MIDP应用程序。从2.3 Beta版本之后,SUN将WTK的名称修改为SUN Java Wireless Toolkit,本文使用WTK 2.2正式版。首先从
http://java.sun.com 下载软件,并安装到C:\WTK22目录。Ktoolbar是整个WTK 2.2的核心组件,选择“开始”——“所有程序”——“J2ME Wireless Toolkit 2.2”——Ktoolbar。Ktoolbar的界面如图1-1所示:
图1-1 Ktoolbar运行界面
使用“打开项目”功能可以方便地运行WTK 2.2自带的Demo项目,读者可以访问C:\WTK 22\apps目录研究项目代码,对初学者来说,这是不错的学习途径。Ktoolbar也提供了“新建项目”的功能,可以新建MIDP应用程序。遗憾的是没有提供代码编辑的功能,因此很少开发者会直接使用WTK作为开发工具。本节我们不讲述如何使用WTK 2.2一步步开发MIDlet,而是介绍如何使用命令行方式开发MIDlet。之所以选择这种方式,是为了让读者清楚MIDP应用程序的开发流程,避免在下一节介绍集成开发环境的时候,只能知其然,不知其所以然。
为了能够在命令行下完成编译、预校验和打包工作,首先把J2SDK和WTK安装目录下的bin目录加入到环境变量中。
C:> SET PATH=%PATH%;C:\WTK22\bin
C:> SET PATH=%PATH%;C:\j2sdk1.4.2_03\bin
开发MIDP应用程序与Java应用程序存在一些差异,为了方便。我们首先设置一些环境变量,如下所示:
C:> SET WTK_HOME=C:\WTK22
C:> SET MIDPAPI=%WTK_HOME%\lib\midpapi20.jar
C:> SET MIDPCP=%WTK_HOME%\wtklib\kenv.zip;
%WTK_HOME%\wtklib\kvem.jar;%WTK_HOME%\wtklib\lime.jar;
%WTK_HOME%\lib\cldcapi10.jar
在WTK_HOME\apps目录下面新建一个目录命名为cmdProject。cmdProject将作为我们的项目目录。在cmdProject中新建如下四个子目录:
·src——存放Java源文件
·tmpclasses——编译后的class文件
·classes——经过预校验的class文件
·bin——存放JAD和jar文件
做好所有准备工作后,开始新建MIDlet。首先在src目录下创建HelloWorld.java文件。源文件内容如下所示:
import javax.microedition.midlet.*; import javax.microedition.lcdui.*;
public class HelloWorld extends MIDlet implements CommandListener { private Display display; public static final Command exitCommand = new Command("退出",Command.EXIT,1);
public HelloWorld(){}
public void startApp(){ if(display == null){ display = Display.getDisplay(this); } TextBox t = new TextBox("Netbeans", "出色的Java开发工具", 256, 0); t.addCommand(exitCommand); t.setCommandListener(this); display.setCurrent(t); }
public void pauseApp(){}
public void destroyApp(boolean unconditional){}
public void commandAction(Command cmd,Displayable displayable){ if(cmd == exitCommand){ destroyApp(false); notifyDestroyed(); } } } |
下面的命令用来编译src目录下的所有源文件并且把他们输出到预先创建好的目录tmpclasses。注意我们已经指定了MIDP API的类路径,确保编译器使用CLDC和MIDP的类库进行编译,否则会使用J2SE SDK的类来编译。
C:\WTK22\apps\cmdProject>javac –d tmpclasses -bootclasspath %MIDPAPI% -classpath %MIDPCP% src/*.java
执行上面的操作后可以在tmpclasses目录下看到HelloWorld.clas文件,现在应该对class文件进行预校验。
C:\WTK22\apps\cmdProject>preverify –classpath %MIDPAPI%;%MIDPCP%;tmplasses -d classes tmpclasses
经过预校验的class文件已经存放在了classes目录,下面可以使用jar命令把这些文件打包。在此之前使用记事本编写一个MANIFEST.MF文件存放在cmdProject/classes目录中,MANIFEST.MF是jar包内的描述文件。内容如下:
Manifest-Version: 1.0
MIDlet-1: HelloWorld,,HelloWorld
MIDlet-Jar-URL: HelloWorld.jar
MIDlet-Name: HelloWorld
MIDlet-Vendor: J2MEdev,RT Inc.
MicroEdition-Configuration: CLDC-1.0
MicroEdition-Profile: MIDP-2.0
使用jar命令进行打包操作:
C:\WTK22\apps\cmdProject\classes>jar cvfm HelloWorld.jar MANIFEST.MF *.class
这样将在classes目录下生成HelloWorld.jar文件,文件大小为1277字节(在不同电脑上可能不同)。使用记事本编写一个HelloWorld.JAD文件,注意一定要在JAD文件中添加MIDlet-Jar-Size属性,通过察看HelloWorld.jar的文件大小可以得到。HelloWorld.JAD文件内容如下:
MIDlet-1: HelloWorld,,HelloWorld
MIDlet-Jar-URL: HelloWorld.jar
MIDlet-Jar-Size: 1277
MIDlet-Name: HelloWorld
MIDlet-Vendor: J2MEdev,RT Inc.
MIDlet-Version: 1.0
MicroEdition-Configuration: CLDC-1.0
MicroEdition-Profile: MIDP-2.0
最后使用emulator命令来运行HelloWorld应用程序,运行界面如图1-2所示:
C:\WTK22\apps\cmdProject\classes>c:/wtk22/bin/emulator -Xdescriptor HelloWorld.JAD
图1-2 使用命令行方式让我们更容易理解MIDP应用程序的开发流程。总结如下:
1. 编写Java源文件
2. 编译java源文件为class文件
3. 对class文件进行预校验,这一点与J2SE环境有区别。由于移动设备的内存和处理器能力有限,如果像J2SE那样在虚拟机内进行校验处理那么会给设备带来很大的负担。因此预校验选择在开发平台中完成。目标设备上的虚拟机只进行少量的校验工作。
4. 编写MANIFEST.MF文件,打包项目文件包括class文件和资源文件,例如文本和图片。
5. 编写JAD文件
WTK 2.2还提供了很多有用的辅助工具用于开发J2ME应用程序,例如网络监视器可以方便的监视客户端与服务器端的通信;内存监视器可以监视程序运行过程中内存的消耗情况,可以以此为根据对程序进行适当的优化;短消息控制台和蓝牙控制中心可以在开发基于WMA和蓝牙的应用程序时协助调试。
尽管WTK2.2已经提供了如此多的功能,还是很难掩饰其不能编辑代码,对项目管理不够强大的不足。下面介绍几款非常出色的集成开发环境。
Netbeans IDE和Mobility Pack Netbeans是一个开源项目,致力于为开发者提供稳定、出色的开发工具。Netbeans IDE和Netbeans平台是netbeans.org的两个著名产品。目前Netbeans IDE的下载次数已经超过了500万次,可见这一集成开发环境受欢迎的程度。现在最为稳定的版本是Netbeans IDE 4.1,虽然官方已经发布了功能更为强大的Netbeans IDE 5.0 beta2版,这里还是推荐开发者使用Netbeans IDE 4.1,同时期待Netbeans IDE 5.0正式版的发布。
Mobility Pack用于开发、测试和调试MIDP应用程序。Mobility Pack 4.1可以和Netbeans IDE 4.1无缝集成,支持CLDC 1.1和MIDP 2.0开发环境。Mobility Pack还可以很容易地与第三方模拟器集成为开发者提供所需的运行环境。
首先从http://www.netbeans.org下载 Netbeans IDE 4.1和Mobility Pack 4.1,可以根据爱 好选择英文版或者中文版本。和其他的Windows软件的安装方式一样,依次安装Netbeans IDE 4.1和Mobility Pack 4.1。这样我们就已经搭建好了J2ME的开发环境,比下一节将要介绍的eclipse要容易一些。
Netbeans IDE把项目按照类别分为:常规、Web、企业和移动。开发MIDP应用程序的时候,应该选择移动分类。在此分类中可以新建Mobile Application、Mobile Library,还可以直接导入WTK自带的Demo项目。
Netbeans IDE和Mobility Pack提供的项目管理功能非常出色,将目标平台、应用程序描述符、编译运行、混淆、签名等功能集成在了一起。开发者只需要选中项目,右键选择属性即可配置上述选项。值得注意的一点是,当项目中使用了图片或者媒体文件等资源的时候,应该在“库和资源”选项中讲资源文件所在的文件夹添加到“捆绑的库和资源”中。避免在java程序中访问资源的时候抛出空指针异常。Mobility Pack 4.1还直接集成了Proguard混淆器,可以设置混淆的级别,混淆的级别越高,混淆的力度就越大。
Mobility Pack 4.1提供了可视化用户界面设计器,开发者可以使用鼠标通过拖拽的方式设计应用程序的用户界面,通过流程控制器实现界面之间的跳转,而不用编写任何代码。无线连接向导是Mobility Pack 4.1另一新特性,可以方便快速的开发出端到端的企业级应用程序,服务器端只提供需要导出的服务类,Netbeans IDE会自动生成服务器端的servlet以及客户端用于连接网络的代码。虽然上述两个功能使用起来非常方便,但是缺乏灵活性,你很难再更改开发工具为你自动生成的代码。开发者使用的时候应该谨慎选择。同时希望Mobility Pack 5.0进一步完善和增强上述两个令开发者心动的特性。
Eclipse和eclipseME Eclipse是IBM开发的开源工具,恐怕已经成为了Java开发者最为欣赏的开发工具。围绕Eclipse的插件更是层出不穷。eclipseME就是一个非常出色的用于开发MIDP应用程序的第三方插件。上述软件可以分别从
http://www.eclipse.org和
http://www.eclipseme.org下载,推荐使用Eclipse 3.1和eclipseME 1.2.1版本。直接解压缩eclipse 的压缩文件到D:\eclipse即可完成安装,接下来需要安装eclipseME插件。运行eclipse,选择“help”——“Software Updates”——“Find and Install”——“search for new features to install”,然后选择“new Archived Site”,找到eclipseME1.2.1发布包的目录。按照系统提示最后完成eclipseME插件的安装。
成功安装了elcipseME插件后,还需要在“Preferences”——“J2ME”——“Platform Components”中添加Wireless Toolkit,按照系统提示将前面安装的WTk 2.2加入,这样就彻底搭建了eclipse开发J2ME程序的环境。可见使用eclipse搭建J2ME的开发环境比Netbeans IDE稍显复杂。事实上,管理eclipse的各种插件已经让很多开发者头疼不已,有些插件的更新还很难保证。这也是为什么笔者放弃了长期使用的eclipse,选择了Netbeans IDE 4.1。
JBuilder JBuilder是开发MIDP应用程序的另一选择,与前面介绍的工具不同的是,JBuilder并非免费软件,开发者需要购买才可以使用正式版本。从JBuilder 9版本开始,Borland将WTK直接集成到了开发工具内。如果使用以前版本的JBuilder,那么需要首先安装MoblieSet插件。其实,各种开发工具只是以自己的方式对MIDP应用程序的开发进行了封装,原理还是前面介绍的MIDP应用程序的开发流程。因此这里不对如何使用JBuilder开发J2ME程序做过多介绍,读者可以参考开发工具的帮助文档。
开发工具集成第三方SDK 设备制造商的SDK各式各样,很难全面讲解如何将它们集成到一种或者多种开发工具中,本节的目标在于介绍一种整合的思路。对于不符合统一模拟器接口(UEI)的SDK,例如Motorola的J2ME SDK,开发者应该参考厂商发布的文档,按照说明将其整合到适当的开发工具中;对于符合UEI接口的第三方SDK,例如Nokia和SonyEricsson提供的J2ME SDK,我们只需要把第三方SDK的根目录作为目标平台添加到开发工具的SDK(或者称为Java平台)中。这样在新建MIDP项目的时候,就可以方便的选择这些SDK和提供的模拟器了,如果需要它们自带的类库,也可以把相关的jar文件添加到项目中。
以Netbeans IDE 4.1整合Nokia Developer Suite 3.0为例,假设NDS 3.0安装在C:\Nokia目录。运行Netbeans IDE 4.1,选择工具——Java平台管理器——添加平台,选择平台文件夹为C:\Nokia\Devices\Nokia_Prototype_SDK_2_0。然后按照系统提示进行操作,NDS 3.0就可以正常集成到Netbeans IDE开发环境中了。
总结 开发工具固然重要,它可以提高软件开发效率,缩短周期。甚至可以方便的进行单元测试和团队协作。但是,掌握MIDP应用程序模型,熟悉开发流程比单纯地掌握开发工具更加重要。因此本文的重点放在了介绍如何使用命令行开发MIDP应用程序,为后面介绍开发工具奠定了基础。J2ME技术发展非常迅速,新技术层出不穷。赶快选择一款适合你的开发工具,赶上这趟飞速行进的列车吧。
分享到:
相关推荐
2. **MIDP (Mobile Information Device Profile)**:MIDP是J2ME中最常见的框架,用于开发移动应用程序,包括用户界面组件和网络通信功能。 3. **CLDC (Connected Limited Device Configuration)**:这是J2ME的基础...
本篇文章将深入探讨J2ME开发中的工具篇,帮助开发者更好地理解和掌握J2ME应用的构建过程。 1. **J2ME开发环境** 在J2ME开发中,我们通常使用Sun Microsystems(现已被Oracle收购)提供的Java Wireless Toolkit...
**J2ME开发工具的使用** Java 2 Micro Edition(J2ME)是Java平台的一个子集,专门设计用于资源有限的嵌入式设备,如移动电话、智能家电和手持设备。在J2ME开发中,选择合适的工具是至关重要的,它们能够帮助开发者...
资源名称:J2ME开发详解工具篇J2ME开发详解-工具篇,相当基础的文章,主要是根据目前比较热门的手机,像诺基亚、西门子、摩托罗拉等品牌手机程序的IDE开发工具,主要讲解配置及一些基础知识。 资源太大,传百度网盘...
J2ME移动开发实战精解教学J2ME移动开发实战精解教学
本资料主要探讨了在诺基亚和摩托罗拉等手机上进行J2ME应用程序开发的两款常用工具,帮助开发者入门并掌握移动应用开发的基础知识。 1. **NetBeans IDE for Java ME** NetBeans IDE是Java开发者广泛使用的集成开发...
移动应用开发领域中,J2ME(Java 2 Micro Edition)是一种重要的技术,它为小型设备,如手机、PDA和智能家电等提供了一个统一的开发平台。本课件主要针对那些希望进入移动应用开发领域的学习者,尤其是对Java语言感...
j2me移动开发实战教学视频源代码.rar j2me移动开发实战教学视频源代码.rar j2me移动开发实战教学视频源代码.rar j2me移动开发实战教学视频源代码.rar j2me移动开发实战教学视频源代码.rar
**j2ME手机移动开发** Java 2 Micro Edition(j2ME)是Java平台的一个重要分支,主要用于开发在小型设备上运行的应用程序,如手机、智能手表和家用电器等。j2ME为移动设备提供了丰富的功能,使得开发者可以构建功能...
教程名称:J2ME移动开发实战教学系列视频教程课程目录:【】1.体系介绍和环境配置(J2ME移动开发实战教学系列视频)【】10.数值运算,字符串处理,时间管理(J2ME移动开发实战教学系列视频)【】11.随机数,集合和...
- MIDP提供了用户界面(UI)组件,如表单、按钮、列表等,以及网络访问能力,用于开发移动应用程序。 - CLDC(Connected Limited Device Configuration)通常与MIDP一起使用,提供了一个轻量级的Java运行时环境。 ...
5. **移动项目开发**:J2ME非常适合开发移动应用,如通讯录管理、游戏、信息处理等。实例可能包含了如何存储和检索数据(可能使用RecordStore)、如何实现网络通信(HTTP或TCP/IP)、以及如何处理多媒体文件(如图像...
J2ME游戏开发因其跨平台性和相对较低的硬件需求,曾是移动游戏开发的重要选择。开发者可以使用J2ME的MIDlet套件来创建应用程序,这些应用程序可以在支持Java的移动设备上运行。 **地图制作工具——MapWin1411** ...
综上所述,"J2ME移动开发视频讲义2入门教程"将引导你从零开始,逐步掌握J2ME开发的基本概念、工具使用、用户界面设计、网络通信、资源管理和应用部署等方面的知识,为你的移动开发之路打下坚实的基础。
4. **MIDP Emulator**:MIDP(Mobile Information Device Profile)是J2ME的一部分,用于开发移动设备上的应用程序。MIDP Emulator是专门用于测试MIDlet的模拟器,可以模拟不同的设备配置,帮助开发者在各种环境中...
**J2ME开发详解工具篇** Java 2 Micro Edition(J2ME)是Java平台的一个子集,专门设计用于嵌入式设备和移动设备的开发,如早期的智能手机和平板电脑。在本篇中,我们将深入探讨J2ME开发过程中所使用的工具,特别是...
**J2ME移动开发概述** J2ME,全称Java 2 Micro Edition,是Java平台的一个子集,专为资源有限的嵌入式设备和移动设备设计,如手机、智能手表和数字电视等。J2ME提供了一种跨平台的解决方案,让开发者能够编写一次,...
《郭克华J2ME移动开发实战教学视频源代码》是一个专注于Java Micro Edition(J2ME)技术的教育资源,由知名讲师郭克华提供。J2ME是Java平台的一个子集,专门用于嵌入式设备和移动设备的开发,如早期的智能手机、功能...
J2ME无线开发工具包(共2个分卷).part1