摘 要:J2ME平台是一个具有高可移植性、安全等优点的无线设备应用开发平台。介绍了在J2ME平台上基于MIDP的MIDlet应用程序的开发框架,并给出了一个开发过程的实例。
关键词:移动设备;MIDP;CLDC;J2ME平台
1 基本框架
1.1 什么是MIDP
MIDP(移动信息设备描述)是一套应用编程接口(Application Programmer′s Interfaces,APIs)。他与CLDC(有限连接设备配置,Connected Limited DeviceConfiguration)一起向诸如蜂窝电话等移动通信设备提供了一个完整的Java应用程序环境。
1.2 MIDP的位置及其作用
J2ME整个框架如图1所示,可分为3个部分:作业系统、Java应用管理部分(包括KVM,CLDC和MIDP)和MIDlet。作业系统相当于移动设备的实际的硬件部分;KVM是一个特殊的JVM(Java虚拟机),他负责建立Java虚拟机,解释Java代码,从字面意义可知,此虚拟机能够运行在几百k内存的环境中;CLDC(configuration)负责建立核心类库,功能比较少(比如没有接口),主要面向水平市场;MIDP(profile)建立高级类库,为开发者提供的一组API,功能丰富,面向垂直市场;MIDlet则是开发者利用下层的MIDP为终端用户开发的实用小程序。

J2ME通过在KVM上定义MIDP和CLDC对具体作业系统差异性进行逻辑抽象,然后整合两种设置为在特定移动设备上开发应用程序提供了一套完整的平台和API。
1.3 基于MIDP的MIDlet应用程序生命周期
开发者就是透过这3个抽象方法来控制MIDlet的生命周期。所有的MIDlet都必须实现这3个方法,才能保证正常运作。一旦MIDlet被JAM载入之后,首先会先呼叫MIDlet中没有参数的建构式以进行初始化的工作,但其开始时一定是先进入停止状态,然后开发者再将他转换成启动状态,然后调用startApp(),如图2所示。只有当认为MIDlet的状态必须改变时,才会呼叫图中的相关函数。应用程序在一次运行的过程中会在活动和不活动状态之间多次转变,这样你就不必编写单独运行的初始化代码了,比如初始化用户界面的代码等,因为这类代码很可能会执行好多次。为此应该采用构造器来完成同一功能。应用程序在关闭之后就会调用destroyApp方法。和startApp方法不一样的是该方法只在应用程序生存期内调用一次,所以在这个方法内编写清除代码是很安全的。

2 实 例
本实例是利用J2MEWireless Toolkit开发的,实际构建、安装和运行MIDP应用程序的过程同标准Java应用程序存在很大不同。开发过程如下:
2.1 导入应用程序所需包
首先要导入2个包名称空间:javax.microedition.
midlet和javax.microedition.lcdui。前者包括该应用程序的MIDlet基类,而后者则提供了一组类似Swing的GUI元素供应用程序使用。
2.2 定义MIDlet类

2.3 程序的初始化

在实现时定义一个类Displayable1,该类从Form类继承(便于添加其他相应的组件)过来,并实现CommandListener接口,同时定义3个组件,如下所示:
2.4 组件初始化

2.5 结 果
最后运行结果如图3所示,上面是Ticeker类对象的动态文本,中间是DateField类对象的时间文本,下面是StringItem类的静态文本。组合形成了一个实用的基于MIDP的MIDlet小程序。

3 结语
本文以Java为开发手机程序的基础知识,没有反射也没有finalization支持,并辅以一个实例介绍了基本开发步骤。Java手机现在正在走向普及化趋势,也是未来软件发展的一个方向,具有广阔的前景。