J2ME,全称Java Micro Edition,是Sun Microsystems(现已被Oracle公司收购)为嵌入式设备和消费类电子产品设计的开发平台。它与J2SE(Java Standard Edition)和J2EE(Java Enterprise Edition)一同构成了Java技术的三大核心分支。J2ME的核心特点是其跨平台性和对资源有限设备的支持。
J2ME平台架构由配置(Configuration)和简表(Profile)组成。配置是最小的类库集合,包含了Java虚拟机,旨在覆盖最广泛的设备。而简表则是针对特定设备功能的开发包集合,它们基于配置构建,提供了更具体的API和服务。
J2ME中有两个关键配置:
1. CLDC(Connected Limited Device Configuration):适用于内存低于512KB、电源有限、网络连接不持续的设备,如早期的手机、PDA和双向寻呼机。CLDC定义了基本的Java运行环境和有限的用户交互能力。
2. CDC(Connected Device Configuration):面向内存至少2MB、具有网络连接能力(通常为无线)的设备,如家用电器或汽车导航系统。CDC要求实现完整的Java虚拟机规范。
在CLDC之上,有一个重要的简表——MIDP(Mobile Information Device Profile),它为移动信息设备(如手机)提供了一个标准的Java API集合,与CLDC一起构成一个适用于受限设备的Java应用程序环境。MIDP包括了用户界面组件和网络功能,使得开发者能够创建具备图形界面和网络通信能力的移动应用。
MIDP应用程序由两部分组成:应用程序主体(JAR文件)和应用程序描述文件(JAD)。JAR文件包含了应用的代码和资源,而JAD文件则包含了关于MIDlet(MIDP应用的实例)的信息,如类名称、图标和程序描述。完成MIDP应用后,需要将其部署到目标设备上才能运行。
下面是一个简单的MIDlet示例:
```java
public class HelloWorld extends MIDlet {
private TextBox textbox;
public HelloWorld() {
textbox = new TextBox("", "Hello World!", 20, 0);
}
public void startApp() {
System.out.println("the App is start!");
Display.getDisplay(this).setCurrent(textbox);
}
// 省略其他生命周期方法stopApp()和destroyApp()
}
```
在这个例子中,`HelloWorld`类继承自`MIDlet`,表示这是一个MIDP应用。`startApp()`方法中创建了一个TextBox显示“Hello World!”,并将其设置为当前显示的组件。
在J2ME的类库结构中,有核心类库(如`java.lang.*`、`java.io.*`、`java.util.*`)和扩展类库(如`javax.microedition.io.*`),这些类库为开发者提供了编写应用程序所需的各种工具和接口。此外,还有专门针对Java卡(Java Card)的类库,它支持有限的数据类型(如`boolean`和`byte`)。
总结来说,J2ME是一个强大的框架,用于在各种资源受限的设备上开发应用程序。通过理解其配置和简表的结构,以及MIDP的关键概念,开发者可以构建适应不同设备特性的应用程序,满足各种应用场景的需求。