Java ME轻量级编程入门

Java ME(Micro Edition)是Java语言的一个轻量级版本,专为内存和处理能力有限的设备设计,如手机、PDA、电视顶盒、智能卡等。本文将指导如何使用最基础的SDK——Sun Java ME Wireless Toolkit——来编写一个简单的"Hello World"应用程序。

要开始使用Java ME,首先需要下载并安装SDK。可以从下载Sun Java ME Wireless Toolkit。安装完成后,可以按照以下步骤创建新项目:

启动无线工具包:点击“开始”按钮 -> Sun Java(TM) Wireless Toolkit for CLDC -> 无线工具包。应该会看到一个类似于这样的窗口:

要创建新项目,只需按下“新建项目”按钮。一个新的窗口将打开,需要填写项目名称和一个MIDlet类名(MIDlet类将在稍后解释)。在示例中,项目名称将是“Hello World”,MIDlet名称将是“HelloWorldMIDlet”。

创建项目后,会打开一个包含各种设置选项的窗口。在这个阶段,只需点击“确定”按钮。

项目创建完成后,主窗口将显示源文件、资源文件(如图片和声音文件)以及应用程序文件的位置信息。Java源文件可以在任何文本编辑器中编写。

典型的MIDlet结构

一个典型的Java ME应用程序由一个Java源文件组成,还可以选择添加PNG文件(用于图形文件)、MIDI和WAV文件(用于音频文件)。构建和编译阶段会创建两个文件:包含所有可执行文件的JAR文件,以及包含项目信息的JAD(JAVA描述符)文件,如供应商、CLDC和MIDP配置以及用户定义的定义。

Java ME环境的核心框架是CLDC(Connected Limited Device Configuration)。CLDC包含Java ME环境的核心类,处理IO函数、语言函数和其他基本实用程序的类。CLDC的当前版本是1.1。

与CLDC一起的是一个配置文件。有几种配置文件,如MIDP(Mobile Information Device Profile),用于与手机和手持设备一起使用;IMP(Information Module Profile),用于与其他有限设备一起使用;DOJA,用于与NTT DoCoMo i-mode手机一起使用。

每个Java ME应用程序必须至少有一个类,该类从MIDlet类扩展。这个类实际上管理着整个应用程序。应用程序状态定义了应用程序的执行模式。Java ME应用程序有三个运行时状态:“Active”(活跃)、“Paused”(暂停)和“Destroyed”(销毁)状态。

活跃状态是应用程序的正常运行模式。暂停状态是在发生中断时调用的,例如来电。销毁状态是在MIDlet应用程序结束操作时调用的。

MIDlet类中有三种抽象方法:

startApp(): 当MIDlet进入活跃状态时调用。 pauseApp(): 当MIDlet进入暂停状态时调用。 destroyApp(boolean unconditional): 当MIDlet结束执行时调用。

这三个方法用于初始化和释放资源以及其他用户定义的对象。

编写一个简单的Hello World MIDlet

示例程序是一个简单的MIDlet,它在手机上显示“Hello World”。如前所述,每个MIDlet至少有一个类,该类从MIDlet类扩展。MIDlet的名称必须是在“新建项目”阶段定义的名称。骨架类看起来像这样:

public class HelloWorldMIDlet extends MIDlet { protected void destroyApp(boolean arg0) throws MIDletStateChangeException { // 当用户终止此程序时调用 } protected void pauseApp() { // 当程序被外部事件中断时调用,如来电 } protected void startApp() throws MIDletStateChangeException { // 每次程序启动时调用 } }

有许多类都从Displayable类扩展。这些类是可以显示在屏幕上的类。其中一个常见的类是Canvas类。这个类在游戏应用程序中非常流行,可以在屏幕上绘制各种对象、显示图片(PNG格式)并且可以处理动画。其他Displayable类包括显示菜单的List类和显示纯文本的Form类。

Display类管理MIDlet的显示。通过这个类,用户可以决定现在应该显示哪个Displayable类。首先,需要定义一个Display类。

private Display display;

然后,需要初始化它:

public HelloWorldMIDlet() { display = Display.getDisplay(this); }

如前所述,display类必须显示一个Displayable类。所以现在需要创建一个从Displayable类扩展的类。

private class MainScreen extends Canvas { public void paint(Graphics g) { g.drawString("Hello World", 5, 5, Graphics.TOP | Graphics.LEFT); } }

在构造方法中,初始化MainScreen类:

mainScreen = new MainScreen();

在启动方法中,将mainScreen类设置为在屏幕上显示。

display.setCurrent(mainScreen);
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485