选择显示字体大小

j2me开发及jbuilder工具的应用

无线通信领域有两项重大的技术应用,一个是宽带cdma技术,一个是ip技术。前者使无线通信获得更多带宽,3g的目标是静态速率达到2mbps,而现在的2.5g技术(如国内正在建设的gprscdma2000 1x)都可达到115kbps的速率;后者使无线通信和因特网融合起来,实际上当前wap2.0技术就采用已经很成熟的tcp、tls和http协议,而移动ip和ipv6技术将促使更多设备接入互联网,如各种设备、家电等。
就是在这样的环境下j2me技术得以快速发展,j2me用来为接入和即将接入互联网的设备提供应用开发平台和执行环境,本文则主要论述如何利用jbuilder进行快速的j2me应用开发。
1. j2me分层结构及midp简表
j2me是sun的java2平台微型版(java2平台3个版本之一,另两个是标准版j2se和企业版j2ee),采用3层结构设计。最低层为配置层(configuration),包括虚拟机(vm)和类库两部分,这一层与设备层(硬件及操作系统)关系紧密,由sun提供参考规范和源代码,设备厂商根据设备特征进行相应的移植。当前j2me提供有两个配置:连接设备配置(cdc)和有限连接设备配置(cldc)。前者主要面向有较大内存和处理能力而只需有限功能的设备,如电视置顶盒、冰箱、汽车导航设备等,这些设备都有连接网络和相互交互的需求,其内存在2m以上;后者主要面向对内存和处理能力有较大限制的手持设备,如现在使用的手机、pda等,现在及将来大多数这些设备都已经能够接入互联网,其内存范围160kb(其中128kb用于虚拟机及类库,至少32kb用于cldc规范所要求的应用程序堆栈空间)到2m。二者主要区别在于能提供给vm及应用程序的存储空间,cdc所用vm及类库实际是参考j2se标准,去除了不需要的功能如awt。cldc所用vm(称作kvm)则有较大区别,包括类验证机制。对于下一代移动终端设备如智能电话、高端pda,则是cdc所应用对象,因为它们将有超过2m的内存。
设备层之上是简表层(profile),再之上则是应用层(application)。简表层扩展了配置层功能为上层应用提供api,如果说配置层面向设备,简表层则面向应用。可以根据需要在cdc或cldc基础之上提供多种简表,一个配置层之上也可以有多个简表。当前cdc之上有基础简表(foundation profile)和基于fp的personal profile和rmi profile。cldc之上则主要提供有移动信息设备简表(midp),即用于手机、pda等移动终端的设备简表,提供api以支持无线应用的开发。
cldc类库一部分来自j2se,这部分类库是经过裁减的,去除了不必要的功能,主要包括java.lang包中的系统类、数据类型类、异常处理类,java.util包的集合类、时间类和附加工具类,java.io包的i/o处理类。cldc专有类则主要是“通用连接框架(gcf)”,为cldc提供网络连接功能,这些网络接口都是connection类的子类,由类connector所提供的方法调用,这些接口或类位于包javax.microedition.io。
cdc类库则是cldc的超集,因此为cldc开发的应用程序可以移植到cdc平台,由于cdc采用标准的j2se vm,因此其开发与标准的j2se开发一致,只是在用javac工具编译源代码时需要使用cdc的类库,即使用-bootclasspath参数指向cdc类库。
midp扩展了cldc的功能,它继承了gcf并在此基础上增加了类httpconnection,用以提供http连接功能(尽管从理论上cldc/midp可以提供socket、数据报、文件、nfs等多种连接类型,但现在标准的cldc/midp仅支持http协议,一些设备实现则提供了socket和https协议的支持),midp类库总结如下:
¨ java.io、java.lang、java.util,属于midp的核心包,分别用来提供系统i/o、语言支持和工具支持。包中的类来自cldc并稍有增加,但都来自j2se
¨ javax.microedition.midlet,定义了midp应用程序,以及应用程序和它所运行于环境之间的交互。
¨ javax.microedition.lcdui,为midp应用程序提供用户界面api。
¨ javax.microedition.rms,用来为midlet提供持久存储的机制,应用程序可以存储数据,在以后需要的时候获取这些数据。
¨ javax.microedition.io,提供了基于cldc通用连接框架的网络支持。
2. midp应用程序开发
这里讨论的j2me无线应用开发主要是基于cldc/midp的开发,其应用程序可运行于移植有kvm的手机、pda等,这类设备由midp定义,即移动信息设备(mid),可看作一垂直应用市场。
可在pc(windows、unixlinux平台)上开发midp应用程序,编译成类文件形式,下载到目标设备上,经过类文件的验证(验证是否有不符合kvm规范的方法调用等)后即可解释执行。从源代码到最后应用程序的执行,整个过程如下:

图1 midp应用程序开发过程
这是开发一个midp应用程序的完成步骤,其中8和9可以在模拟器上进行,也可以把应用程序通过irda、rs232或ota等方式之一下载到目标设备上运行。1、2步骤是在前期设计基础上编写源代码,其中资源文件可以是png图象或自定义结构数据,外部类库应该是符合cldc/midp规范(即没有超出cldc/midp的类或方法调用)的zip或jar文件。生成的.java文件至少有一个是扩展了javax.microedition.midlet.midlet类的子类,并且实现几个规定的接口,比如下面的一个midlet程序 :
import javax.microedition.midlet.*; //应用程序生命周期,和j2se一样,包java.lang.*是默认加载的
import javax.microedition.lcdui.*; //midp用户界面
public class firstmidlet extends midlet implements commandlistener {
private display display; // 引用midlet的display 对象
private textbox textbox; // textbox 显示一条消息
private command cmdexit; // 设定按钮用于退出midlet
public firstmidlet() { // midlet构造程序
display = display.getdisplay(this);
cmdexit = new command("exit", command.screen, 1);
textbox = new textbox("my first midlet", "hello, j2me!", 50, 0);
textbox.addcommand(cmdexit);
textbox.setcommandlistener(this);
}
public void startapp() { // 必须要实现的接口,被应用管理软件调用来启动midlet
display.setcurrent(textbox);
}
public void pauseapp() { } // 必须要实现的接口
public void destroyapp(boolean unconditional) { } //必须要实现的接口
public void commandaction(command c, displayable d) { //检查一下是否选择了退出命令
if (c == cmdexit) {
destroyapp(false);
notifydestroyed();
}
}
}
这是最简单且功能完整的midlet应用程序,其中接口startapp、pauseapp、destroyapp是必须要实现的,应用程序管理器(jam)通过这些接口调用和控制应用程序,与applet类似。除这个主类外还可以有其它辅助类,其要求和j2se一致。
然后使用javac工具编译,javac工具来自j2se,至少jdk 1.3版,编译时应该使用参数-bootclasspath并指向midp类库。之后使用preverify工具预验证,以保证生成的.class文件符合cldc要求,这一步为每个类文件添加堆栈映射(stackmap,此属性为cldc新定义)属性,增加类文件大小约5%。
此时可以用midp工具(来自midp实现的可执行文件)模拟运行,之后即可打包,需要编写一清单文件(清单文件参考cldc/midp规范),用jar工具(来自j2se)把预验证后的类文件、资源文件、清单文件打包。
要发布应用程序还需要编写一描述文件(jad),jad的要求同清单文件一致,可以自定义参数供应用程序调用。其中一个参数midlet-jar-url以url方式指向jar文件,移动终端设备通过jam连接网络获取jad,下载midlet-jar-url指向的jar到设备中,通常jam要先判断jad与清单文件是否一致,应用程序是否有效,然后才决定下载。
运行时执行环境、jar包、jad文件和应用程序生命周期,这些要素构成midlet套件,由jam管理,每个midlet套件可包含一个或多个midlet。
上面是一个midp应用程序开发的关键点,具体的开发方法及开发工具大致分为如下几种:
ⅰ. 基本开发工具
最基本的开发方式是下载sun提供的cldc/midp参考实现及源代码,可根据需求编译生成一个cldc/midp实现,并移植到设备上。配置好开发环境(cldc/midp实现、jdk1.3)后即可采用上述方法和工具进行开发,多采用命令行方式,这是最原始的方法。
ⅱ. j2mewtk开发工具
这是sun提供的便捷开发工具,用于windows环境,同样需要先安装jdk1.3。源程序仍需要使用常规的文本编辑器,把编辑好的源文件及资源文件按一定要求放在规定目录下,j2mewtk所提供的是菜单或按钮方式的命令。j2mewtk中有相应的编译(和预验证一个步骤)、打包、模拟运行的菜单(或按钮),以及其它辅助工具。

[1] [2]  下一页


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons