* 介绍
移动信息设备简表 (MIDP) 适合类似于蜂窝电话和寻呼机这样的设备。MIDP,就象 KJava 一样,同样也建立在 CLDC 之上。MID 简表提供一种标准的运行时环境,允许在终端用户设备上动态地配置新的应用程序和服务。
在本章中,我们将详细地讨论 MID 定义的七个软件包。我们还将建立一个 MIDP 应用程序示例。
* UI 设计注意事项
MIDP 包括一个低级的 UI API 和一个高级的 UI API。低级的 API 允许您完全访问一个设备的显示屏,也允许访问原始键和指针事件。然而,使用低级 API 时, 没有可用的用户界面控件。应用程序必须精确地绘制出按钮和其它所有的控件。
相反,高级 API 提供简单的用户界面控件但不能直接访问原始的输入事件或显示屏。由于显示屏的尺寸和 MIDP 设备输入方法的差异,控件显得很抽象。MIDP 的实现确定了绘制控件的方法,也确定了如何管理用户输入。
让我们在后面的章节里更进一步了解 MIDP 的软件包和类。
* MIDP API
MIDP 包含四个核心 CLDC 软件包 (java.lang、java.io、java.util 和 javax.microedition.io),另加下面的三个特定于 MIDP 的软件包:
· javax.microedition.lcdui
· javax.microedition.midlet
· javax.microedition.rms
我们将在本章的后面部分详细介绍特定于 MIDP 软件包。除了上面新的软件包之外,MIDP 还向核心 CLDC 软件包添加了四个新类,如下所示。
· java.util.Timer -- 用于为后台线程中将来要执行的任务确定时间。
· java.util.TimerTask -- 被 java.util.Timer 类使用,用来为后台线程中稍后的执行定义任务。
· javax.microedition.io.HttpConnection -- 一个接口,为 HTTP 连接定义必要的方法和常量。
· java.lang.IllegalStateException -- 一个 RuntimeException, 指出在不合法或不合适的时间已经调用的一个方法。
* MIDlet 介绍
MIDlet 是一个 Java 类,它扩展了 javax.microedition.midlet.MIDlet 抽象类。实现 startApp()、pauseApp()和 destroyApp()方法,这些方法类似于 J2SE 的 java.applet.Applet 类中的 start()、stop()和 destroy()方法。
除了扩充 javax.microedition.midlet.MIDlet 的主 MIDlet 类之外,一个 MIDP 应用程序通常还包括其它一些类,这些类能随它们的资源一起被打包成为 jar 文件 -- 称之为 MIDlet 套件。一个 MIDlet 套件中的不同 MIDlet 能共享 jar 文件的资源,尽管不同套件中的 MIDlets 不能直接相互作用。
MIDlet 在应用程序生命周期中有三种可能的存在状态 -- 运行状态、暂停状态、销毁状态。运行状态,正如其名称所暗示的,意味着 MIDlet 正在运行中。这种状态始于 startApp 方法被调用时。在暂停状态中,MIDlet 持有的所有资源将被释放,但是它准备着再次被运行。调用 notifyPaused 方法时,MIDlet 处于暂停状态。在销毁状态中,MIDlet 已经永久地将其自身关闭,释放所有的资源,等待着废物清理程序的处理。它是通过 notifyDestroyed 方法来调用的。
在接下来的两页中,我们来看一个简单的 HelloWorld MIDlet。
* HelloWorld MIDlet
与使用 KJava HelloWorld 应用程序一样,这个 MIDlet 也会在 MIDP 设备的显示屏上显示 "Hello World!" 和 Exit 按钮,按下该按钮会终止应用程序。
HelloWorld.java 文件以下面的代码行开始,这些代码行导入稍后会在 HelloWorld 类中使用的类:
import javax.microedition.midlet.MIDlet;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
由于 HelloWorld 类是一个 MIDP 应用程序,它扩展了 MIDlet。它也实现 CommandListener 接口来处理事件:
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 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);
}
调用 startApp() 方法启动应用程序与小应用程序的启动方法很象。在 MIDle 的一次执行中它可能会被调用多次。如果 MIDlet 暂停,pauseApp() 将会被调用。要重新启动 MIDlet,需调用 startApp()。仅须执行一次的主初始化代码应该放置在构造程序中:
public void startApp() {
// Get a reference to the display, and show the form
Display display = Display.getDisplay(this);
display.setCurrent(form);
}
pauseApp() 被调用使得 MIDlet 处于暂停状态。在此应用程序中,当进入暂停状态时,我们没执行任何操作;但是我们仍然需要在 MIDlet 中实现 pauseApp 方法,因为它是父 MIDlet 类中的抽象方法。
public void pauseApp() { }
destroyApp() 被调用,破坏了 MIDlet 并使其处于销毁状态。在此应用程序中,我们通过将引用设为 null,释放了对表单的引用。
public void destroyApp(boolean unconditional) {
form = null;
}
commandAction() 方法是事件处理程序,被请求实现 CommandListener 接口。目前,它破坏了应用程序并通知应用程序管理软件 MIDlet 已经完成。
public void commandAction(Command c, Displayable d) {
// Destroy this MIDlet
destroyApp(true);
// Notify the application management software that this MIDlet
// has entered the destroyed state
notifyDestroyed();
}
* MIDP 软件包
除标准 CLDC 软件包之外,MIDP 还包含三个附加的软件包:
· javax.microedition.lcdui -- 定义用来控制 UI 的类。这个软件包既包含高级 UI 类(例如 Form、Command、DateField 和 TextField 等),又包含低级 UI 类(允许用低级方式控制 UI)。
· javax.microedition.midlet -- 包含 MIDP 主类中的一个,MIDlet 类,为 MIDP 应用程序提供访问关于其运行所在环境信息的权限。
javax.microedition.rms -- 定义一个类的集合,这些类为 MIDlet 提供了永久存储并随后重新得到数据的机制。
分享到:
相关推荐
本文将对 MIDP 2.0 的 Game API 进行详细介绍,并结合实际应用场景来帮助读者更好地理解和应用这一 API。 #### 二、MIDP 2.0 Game API 概述 MIDP 2.0 Game API 是 J2ME 平台上专门为移动游戏设计的一套 API。相较于...
**MIDP 2.0游戏API快速入门** 在移动设备上开发游戏,尤其是早期的智能手机和平板电脑,Java ME(Micro Edition)平台是开发者的重要选择。MIDP(Mobile Information Device Profile)2.0是Java ME的一个子集,特别...
MIDP提供了基本的图形和音频处理能力,支持简单的2D图形绘制和声音播放。javax.microedition.media包提供了媒体管理,而javax.microedition.lcdui.game包则包含了游戏相关的类和接口,如GameCanvas和Gauge。 三、...
jar, cldcapi11.jar, midpapi10.jar, midpapi20.jar, wma.jar以及mmapi.jar;在2.2中,wma.jar又细分为wma11.jar, wma20.jar。如果您在开发中需要某个特定的jar包而当前的WTK版本又没有时,您可以简单把这个jar包...
这个文档集合详细介绍了Midp API,它是开发J2ME应用程序,尤其是移动应用的基础。J2ME是一个轻量级的Java平台,允许开发者创建能在各种小型设备上运行的应用。 Midp API提供了许多功能,包括用户界面(UI)组件、...
在"Java MIDP开发实例集.rar"这个压缩包中,我们可以期待找到一系列的Java源代码示例,这些示例展示了如何利用MIDP API来创建各种功能。MIDP包含以下几个关键部分: 1. 用户界面(User Interface, UI):MIDP提供了...
本API库完全支持 支持MIDP2.0、cldc1.0,WMA,jsr75等常用API库,借助它你可以非常快速地将原J2ME应用转化为APK应用 包括: 1 案例程序源码及工程导入Eclipse即可使用 ; 2 工具包android_midp.jar ; 3 简要开发指南...
4. **数据存储**:MIDP2.0提供了Record Management System(RMS),一种简单的数据库系统,用于在设备上持久化数据。 5. **安全和隐私**:MIDP2.0包含了安全模型,如数字签名、权限管理,以保护用户的隐私和设备的...
本API库完全支持 支持MIDP2.0、cldc1.0,WMA,jsr75等常用API库,借助它你可以非常快速地将原J2ME应用转化为APK应用 包括: 1 案例程序源码及工程导入Eclipse即可使用 2 工具包android_midp.jar 3 简要开发指南dev...
对于初学者和简单游戏开发,基础的MIDP UI API仍然是一个起点,它们提供了构建游戏界面所需的基本工具。 5.6 范例 一个基础UI API的使用例子是创建一个简单的菜单界面,用于游戏选项或级别选择。 6. MIDP用户界面...
3. **User Interface**:MIDP提供了一个轻量级的UI框架,包括Canvas和Form两种基本组件,以及ChoiceGroup、TextBox、Label、Image等元素,用于构建简单但实用的用户界面。 4. ** MIDP Networking**:MIDP支持HTTP和...
- **游戏**:MIDP2.0的图形和用户界面能力使得开发简单到复杂的游戏成为可能。 - **实用工具**:如计算器、日历、闹钟等,这些都是MIDP2.0平台上的常见应用。 - **企业应用**:如库存管理、远程数据访问等,利用MIDP...
2. **掌握MIDP API**:深入学习MIDP1.0提供的类和接口,例如 javax.microedition.lcdui 和 javax.microedition.midlet。 3. **模拟器实践**:使用MIDP模拟器进行开发和测试,避免在实际设备上反复调试。 4. **用户...
通过结合使用这两个API,开发者可以构建从简单的休闲游戏到更复杂的角色扮演游戏等各类游戏。 #### 核心知识点三:MIDP2.0新增特性与游戏开发 MIDP2.0相对于之前的版本,新增了一些重要的特性和改进,这些特性对于...
MIDP高级API提供了较简单的编程模型,适合快速开发简单的应用。这些API包括屏幕管理、数据存储等功能。 #### 3.2 适用场景 对于那些不需要高度定制化界面或复杂功能的游戏来说,MIDP高级API是理想的选择。它们能够...
10. **应用示例**:使用Midp4Palm-1_0开发的应用可能包括游戏、工具应用、生产力应用,甚至简单的Web服务客户端,如天气预报查看器或邮件客户端。 总结来说,Midp4Palm-1_0为Palm OS设备提供了一个实现MIDP 2.0标准...
3. 文件系统:MIDP 2.0提供了一个简单的文件存储系统,通过RecordStore类,应用程序可以保存和读取数据。 4. 游戏和多媒体:CLDC(Connected Limited Device Configuration)的Media Package提供了音频和图像处理...
"Java ME MIDP Programming CHM Manual"可能是关于MIDP编程的一本详细指南,涵盖了MIDP API的使用、开发实践以及可能遇到的问题解决方案。通过深入阅读此手册,开发者可以掌握创建MIDP应用的技能,并了解如何在受限...
本文档旨在介绍MIDP图形编程的基础知识,帮助开发者理解如何在这些受限环境中构建交互式应用。 ### 1. 引言 MIDP图形编程的目标是为移动设备提供一种高效且易于使用的编程模型,以创建吸引人的、功能丰富的应用。...