《基于J2ME技术的手机应用软件开发技术》由会员分享,可在线阅读,更多相关《基于J2ME技术的手机应用软件开发技术(7页珍藏版)》请在金锄头文库上搜索。
1、基于J2ME技术的手机应用软件开发技术摘要本文主要就少了手机编程的发展及有关开发的技术,重点阐述了J2ME技术的特点、整体架构、开发过程及J2ME Wireless Toolkit开发工具包。关键词手机、J2ME、MIDP、J2ME Wireless Toolkit一、引言随着通讯技术的发展,手机越来越普及,现在的手机的数量已经远远的超过电脑的用户量,同时用户不再满足厂商固化在手机内的几个程序的功能,希望手机成为一个移动通信的终端,能下载程序并运行,实现各种只有在PC机上才能实现的功能。手机游戏产业在全球已经占有很大的市场,随着无线互联网时代的来临,开发手机中的应用程序已成为一种时尚,市场潜力
2、十分巨大。二、常见的手机应用软件开发技术 开发手机软件的技术有多种,常见的有以下几种: (1)WAP论坛创立的WAP (Wireless Application Protocol)技术。 (2)日本NTT DoCoMo公司1999年2月推出的IMode技术。 (3)韩国市场使用较广GVM技术 。 (4)北美的 Qualcomm (高通)公司和中国联通共同推出的BREW (Binary Runtlme Environlnent for Wireless)技术。 (5)SUN公司推出了J2ME (Java 2 Platform Micro Edition,Java2微型版 )技术 。 其中J2ME
3、一经推出。得到了越来越多的厂商、开发人员和用户的支持,正迅速成为最为流行的手机应用软件开发技术。J2ME开发平台与其他技术相比,具有以下特点: (1)平台无关性。利用Java的“write once,run anywhere”特性,我们可以真正达到程序只要写一次,拿到任何平台上都可以执行(当然前提是必须要该手机厂商提供符合规格的Java Virtual Machine才行)。 (2)面向对象的编程技术。支持面向对象的编程技术,提供丰富的类库,在CLDC/MIDP中提供了与网络相关API函数。(3)安全性。Java语言在原始设计上就将安全性的因考虑进去,由于Java语言不支持指针的使用 ,在 J
4、ava程序内访问某一块内存的数据,不会因为下载了一个错误的Java应用程序而对设备或网络造成危害。 (4)动态下载应用程序。手机与其他移动通讯设备拥有无线通讯能力。Java应用程序可随时通过无线网络下载。 (5)离线获取。不用激活网络链接,应用就可以被使用。降低了传输费用,减轻了可能的网络故障带来的影响。 (6)庞大的开发者队伍。据估计在全球有超过 250万的Java软件开发者。Java也正快速地变成学院和大学里用教学的最流行的编程语言 。三、J2ME技术架构 当JAVA演化到JAVA2时,为了满足市场对灵活性和个性的需求,SUN公司将JAVA技术发展为四个版本:针对开发企业服务应用J2EE
5、(Java 2 Enterprise Edition)、针对普通PC应用的J2SE (Java 2 standard Edition)、针对嵌入式设备及消费类电子产品的J2ME (Java 2 Micro Edition)和针对智能卡开发的Smart Card。 J2ME采用了模块化的结构,底层是宿主机的操作系统,内部则分为3层: (1)Java虚拟机(JVM)层。专门针对特定设备的嵌入式操作系统定制的,并支持特定的J2ME configuration。J2ME支持的Java虚拟机有两种:JVM和KVM。JV包含了基于台式机系统上的虚拟机的所有功能,适用于拥有至少几兆字节内存的设备,如PDA、
6、机顶盒等;而KVM(kilobyte virtual machine)专用于内存小、资源有限、能上网的设备如手机等。 (2)Configuration (配置层)。J2ME现将所有的嵌入式设备大体分为两种:一 种是运算功能有限且电力供应也有限的嵌入式设备(如PDA和手机)。另一种是运算能力相对较佳且电力供 应比较充足的嵌入式设备(如网络家电)。Java引入 了一个 configuration的概念。把上述第一种定义为有限连接设备配置段DLDC (Connected Limited Device configuration)。第二种定义为连接设备配置 CDC(Connected Device C
7、onfiguration)。配置层定义了Java虚拟机的最小功能集 和Java类库的最小集合,是profile层基础。 (3)Profile层(应用模型层)。区分出两种主要的Configuration之后,为了要更 明确地区分出各种嵌入式装置上Java程序该如何开发以及它们应该具有哪些功能,J2ME接着又定义了Profile的概念。Profile是架构在Configuration之上的规格。这一层是对用户和程序员可见的,它针对不同设备类型(如手机类 、机顶盒类),定义了不同种类的Java类库和API(应用程序接口)。任何一种profile都是在特定的configuration层基础上实现的,扩
8、充了附加的JVM 功能集与类库。目前在CLD上只定义了一种 profile即MIDP (mobile information device profile)。 J2ME的系统架构如图1所示。图1 J2ME的体系结构四、 MIDP模型 MIDP是Java Community Process(JCP)定义的,是独立于设备供应商的一个标准。包括下列软件包:(1)java.lang;java编程语言基本类; (2)java.io;系统输入与输出; (3)java.util;集合、日期和时间支持,各种实用工具类; (4)java.microedition.lcdui;用户界面工具包; (5)java.m
9、icroedition.io;支持HTTP协议 ; (6)java.microedition.midlet;MIDlet和其环境之间的界面 ; (7)java.microedition.rms;固定记录存储。 前面三个是核心CLDC 软件包,另加四个特定于MIDP的软件包。前面三个软件包属于J2SE软件包的子集,包含一些基本的类来提供诸如字符串处理、I/0操作和网络通信等功能;后面四个软件包提供了针对MIDP的扩充 。需要注意一点,MIDP不支持浮点数的运算。 MIDlet suite是MIDP应用程序的最小单位,每一个MIDlet都继承自MIDlet抽象类,MIDlet类是提供了运行时环境(
10、应用程序管理器 )和MIDlet应用程序之间的接口。MIDlet类提供用于调用、暂停、重新启动和停止MIDlet应用程序的API,运行时环境通过传送相关事件来改变应用程序状态,MIDlet应用程序的生命周期如图2 所示。图2 MIDlet的状态转换五、 J2ME应用程序开发步骤 J2ME手机应用程序开发的流程大致可分七步 : (1)撰写源程序(Java)代码。利用文本编辑器编写好源代码,并以扩展名为Java的文件保存。下面是一个简单的MIDP应用程序例子,运行该程序可以会在 MIDP设备的显示屏上显示“Hello world!和 Exit按钮,按下该按钮会终止应用程序。源代码件HelloWor
11、ldjava的内容如下:importjavax.microedition.midlet.MIDlet; importjavax.microedition.lcdui.* ; public class HelloWorld extends MIDlet implements CommandListener private Form form ; public HelloWorld () /Create a new form on which to display our text form =new Form (“Test App”); /Add the text”Hello World!”to
12、 the form form.append (“Hello World!”); /Add a command button labeled”Exit” form.addCommand ( new Command ( “Exit”.Command.EXIT,1 ) ); /Register this object as a commandListener form.setCommandListener (this); public void startApp ( ) /Get a reference to the display,and show the form Display display
13、=Display.getDisplay (this); display.setCurrent (form); public void pauseApp ( ) public void destroyApp (boolean unconditional) form = null; public void commandAction (Command c,Displayabled)/Destroy this MIDlet destroyApp (true); /Notify the application management software that this MIDlet /has ente
14、red the destroyed state notifyDestroyed ();(2)编译程序。把写好的Java程序代码利用SDK所供的javac编译工具将程序代码编译成字节码。 (3)预先审核(Preverify)。这是Java程序中一个非常要的安全防护措施,Java虚拟机中提供了一个称为类文件审核的机制,这个机制是要确保所有下载的 Java类文件是正确的,不会进行有安全顾虑的行为。 (4)撰写描述文件。MIDP应用程序的描述文件也可以称为JAD文件,以jad为扩展名。JAD内字段有些是选性的,有些则是在下载或执行过程中,JAM (Java Applation Manager)一定会检
15、查的字段,一定要填入JAD内。在JAD文件内必须包含如下字段: MIDlet-Name,MIDlet-Version,MIDlet-Vendor,MIDlet-,Microedition-Pro6 le,Microedition-Configuration。 (5)合成JAR文件。MIDlet suite(JAR文件)是JAM 执行MIDP应用程序的最小单位,还需要MIDlet会用到其他类型的文件(如影像文件或文本文件等)一起合成同一个JAR文件。合成JAR文件还可以减少程序的大小,以减少网络传输时间。 (6)测试和调试。接下来利用MIDlet参考实现所附的MIDP仿真器测试完成的MIDlet。 (7)实体机器上执行。将程序下载到实体机器上执行,以测试其针对具体机器的运行效率。六、 J2ME Wireless Toolkit开发工具 61常见的J2ME开发工具 用于手机的 J2ME应用程序,一般都要在PC上进行开发。为了方便开发人 员进行开发和测试,各开发平台提供商和移动设备厂商均提供了一些在PC机下开发手机应用程序的开发工具和模拟器。SUN 发布 的官 方 版 MIDlet开发工具J2ME Wireless Toolkit、Bodand公司发布的与JBullder集 成的MobileSet以及Motorola公司提供的MotoJ2SDK,这些工具提供了J2M