* 介绍
迄今为止,我们知道 CLDC 比较适合 J2ME,并且也已经建立了我们的开发环境。在这一章中,我们将更深入地探索 CLDC API。CLDC API 实际上只是 J2SE 的一个子集,它包括 java.lang、java.io 和 java.util,另加一个新软件包 -- javax.microedition。我们将逐个来研究这些软件包,并突出显示每一个包中的重要的类。
尽管每一个类都在 J2SE 中,但是没有必要让每一个类的 CLDC 实现都能实现 J2SE 支持的所有方法。您可以检查 CLDC API 文档以确认哪些方法是受支持的。文档的副本位于安装 J2ME CLDC 时创建的 j2me_cldc/docs 目录下。它提供 PDF 和 javadoc 两种格式。
* java.lang
CLDC java.lang 软件包是 J2SE java.lang 软件包的一个子集。与 J2SE 相比,它最引人注目的可能便是冗长的浮点操作了,特别是浮点 (Float) 和双精度 (Double) 类。如果使用浮点的话,这些冗余将涉及到所有其它的类。
相对于 J2SE v1.3 API,CLDC API 中删去了几个其它的类。其中包括 ClassLoader、Compiler、InheritableThreadLocal、Number、Package、Process、 RuntimePermission、SecurityManager、StrictMath、ThreadGroup、ThreadLocal 和 Void。
我们描述了可从下面几页表中的 CLDC java.lang 软件包中获取的主要的类。Java 开发人员对所有这些类的使用都应该是非常熟悉了。
除这些核心类之外,您还将看到 CLDC 支持的 Runnable 接口,正象 Exception 、Error 和其它有关的类一样。
* java.lang 核心运行时类
java.lang 软件包的核心运行时类有:
· Class -- 显示正在运行的 Java 应用程序中的类和接口。
· Object -- 与在 J2SE 中相同,Object 是所有 Java 对象的基本类。
· Runtime -- 为 Java 应用程序提供一种与运行时环境(Java 应用程序在其中运行)进行交互的方法。
· System -- 提供一些静态的帮助方法,就像为 J2SE 提供方法一样。
· Thread -- 定义 Java 程序的一个执行线程。
· Throwable -- Java 语言中所有错误和异常的超级类。
* java.lang 核心数据类型类
java.lang 软件包中的核心数据类型类有:
· Boolean -- 包装 boolean 原始数据类型。
· Byte —- 包装 byte 原始数据类型。
· Character -- 包装 char 原始数据类型。
· Integer -- 包装 int 原始数据类型。
· Long -- 包装 long 原始数据类型。
· Short -- 包装 short 原始数据类型。
* java.lang 帮助类
java.lang 软件包的帮助类有:
· Math -- 包含执行基本数学运算的方法。请注意,所有执行浮点值运算的方法都被省略了,仅保留了关于 integers 和 longs 的方法:abs()、min() 和 max()。
· String -- 在 Java 中代表对象 String,就像在 J2SE 中一样。
· StringBuffer -- 代表一个可以修改的串,就像在 J2SE 中一样。
* java.io 输入类
CLDC API 包含许多 J2SE 中共同使用的输入类。特别地,CLDC java.io 软件包中包括下面一些类:
· ByteArrayInputStream -- 包含一个内部缓冲器,它代表可能从输入流中读取的字节。
· DataInput -- 一个接口,从二进制输入流提供字节以供读取并把它们转换成原始 Java 数据类型。DataInputStream 提供该接口的实现。
· DataInputStream -- 允许应用程序以独立于平台的方式从基层输入流中读取原始 Java 数据类型。
· InputStream -- 一个抽象类,它是所有代表字节输入流的类的超级类。
· InputStreamReader -- 读取字节并把它们按照指定的字符编码方法转换成字符。
· Reader -- 一种读取字符流的抽象类。
注意:其中一些类可能不包含 J2SE 姊妹版支持的所有方法,就像在 java.lang 软件包中一样。尤其是省略了浮点和双精度方法。
* java.io 输出类
CLDC API 包含了许多 J2SE 中的共同使用的输出类。特别是,CLDC java.io 软件包中包括下面一些输出类:
· ByteArrayOutputStream -- 实现一个输出流,在此输出流中数据被写入字节数组。
· DataOutput -- 一种接口,提供原始 Java 数据类型以供写入二进制输出流。DataOutputStream 提供该接口的实现。
· DataOutputStream -- 一个输出流,允许应用程序以一种便捷的方式编写原始 Java 数据类型。
· OutputStream -- 一个抽象类,它是所有代表字节输出流的类的超级类。
· OutputStreamReader -- 给出字符,并按指定的字符编码方法将其转换为字节。
· PrintStream -- 添加一种便捷的方法来打印数据值的文本表现形式。
· Writer -- 编写字符流的一个抽象类。
其中一些类可能不包含 J2SE 支持的所有方法,比如浮点和双精度方法。
* java.util 收集类
CLDC java.util 软件包中包含 J2SE java.util 软件包中最常用的类。这些类中包括四个收集类(实际是三个收集类和一个接口),以及日期/时间和实用程序类。
CLDC 支持的 java.util 收集类有:
· Enumeration -- 一个接口,通过项目集允许对例程进行重复调用。
· Hashtable -- 实现 hashtable,将键映射到值。
· Stack -- 代表了一个后进先出 (LIFO) 的对象集合或堆栈。
· Vector -- 代表可以调整大小的对象“数组”或者矢量。
* java.util -- 其它的类
CLDC 支持的 java.util 类中其余部分包括日期和时间类,以及 Random 实用程序类。下表中简要列出了这些类。
· Calendar -- 一个抽象类,使用一套整型字段如 YEAR、MONTH、 DAY 等来获取和设置日期。
· Date -- 代表特定的时间和日期,精确到毫秒级。
· Random -- 一个实用程序类,用来生成 int 或 long 的随机值流。
· TimeZone -- 代表时区的偏移量,也用于校正时间。
* javax.microedition.io
迄今为止,我们在 CLDC API 中看到的所有的类都是 J2SE API 的子类。CLDC 还包含一个附加的软件包 -- javax.microedition.io。
在这个包里唯一被定义的类就是 Connector 类,也称为工厂类,包含创建 Connection 对象或输入、输出流的方法。
当动态识别一个类的名字时,Connection 对象就被创建了。类名称的识别基于平台名称和被请求连接的协议。描述目标对象的参数串应该满足 RFC 2396 规范所要求的格式。请使用下列格式:
{scheme}:[{target}][{params}]
{scheme} 是一个协议的名称,如 http 或 ftp。{target} 通常是一个网络地址,但是面向非网络的协议则可能把它当作一个相当灵活的字段来处理。还有一些参数,如 {params} 被指定为一系列形如 ";x=y" 的分配形式(例如,;myParam=value)。
* javax.microedition.io 帮助接口
除类属连接工厂类之外,javax.microedition.io 软件包中还包含下列面向连接的接口:
· Connection -- 定义了最基本的连接类型。这个接口也是此软件包中所有其它连接接口的基本类。
· ContentConnection -- 定义了一个可以通过内容的流连接。
· Datagram -- 定义了一个类属数据报接口。
· DatagramConnection -- 定义了类属数据报连接和它必须支持的性能。
· InputConnection -- 定义了一个类属输入流连接和它必须支持的性能。
· OutputConnection -- 定义了一个类属输出流连接和它必须支持的性能。
· StreamConnection -- 定义了一个类属流连接和它必须支持的性能。
· StreamConnectionNotifier -- 定义了一个流连接的通告程序必须具有的性能。
分享到:
相关推荐
**CLDC API(JavaME API)详解** **一、CLDC与JavaME** CLDC(Connected Limited Device Configuration)是Java ME(Micro Edition)的一部分,专为资源有限的嵌入式设备设计,如移动电话、PDA等。它定义了一组...
此外,CLDC中没有`java.awt`、`javax.swing`等图形界面相关的API,这是因为这些设备通常不具有足够的显示能力来支持复杂的GUI。取而代之的是,CLDC提供了一套简化的人机交互API,更适合于小屏幕设备。 #### 总结 ...
本文将详细介绍如何在Linux RedHat 9以及Windows XP操作系统上编译KVM(Java 2 Micro Edition, CLDC)。通过以下步骤,您将了解必要的环境搭建过程、编译流程及其测试方法。文中提及的主要知识点包括: - Linux下的...
MIDP则建立在CLDC之上,提供了更高级别的API,用于开发移动设备上的图形用户界面、网络通信和数据存储等功能。MIDP的版本决定了设备能否运行特定的Java MIDlet(MIDP应用程序)。例如,MIDP 2.0引入了对JSR-118...
1. **介绍**:对CLDC概念、目标和架构的简要介绍,以及CLDC 1.1.1版本相对于前一版本的改进。 2. **虚拟机规范**:描述KVM的运行时环境,包括类加载、垃圾回收、异常处理等机制。 3. **类库规范**:详细列出CLDC...
CLDC API主要关注底层运行环境,包括: - **内存管理**:CLDC规范了最小内存需求,以及如何有效地管理内存资源。 - **类库**:提供了基本的数据类型、异常处理、线程管理和I/O操作等功能。 **4. Wireless Toolkit ...
- 利用多媒体API播放音频、显示图片,甚至创建简单的动画效果。 - 进行设备间的通信,如通过JSR-82实现蓝牙连接。 - 访问设备的硬件特性,如位置信息、传感器数据等,通过JSR-120和其他特定JSR(Java Specification ...
5. **UI组件**:MIDP提供了一系列轻量级的用户界面组件,如ChoiceGroup、Form、TextBox等,用于构建简单的移动用户界面。 6. **网络编程**:Java ME提供了HttpConnection和SocketConnection接口,用于进行HTTP和TCP...
3. **MIDP API**:MIDP API是建立在CLDC之上的,为移动设备提供了特定的功能,如用户界面组件(Canvas、Form、Item等),网络通信(HttpConnection、InputStream、OutputStream),以及文件存储(RecordStore)。...
文中详细介绍了如何在索尼爱立信的一系列手机上利用Java ME实现3D图形处理,以及如何使用Mascot Capsule Micro 3D Version 3 和 JSR 184 Mobile 3D Graphics API 来开发Java 3D应用程序。 #### 二、目标受众 - **...
- ** MIDP UI组件**:包括Alert、Form、ChoiceGroup、TextBox等,用于构建简单的用户界面。 - **MIDlet套件**:是J2ME应用程序的核心,包括MIDlet类,用于应用程序生命周期管理。 - **JSR (Java Specification ...
J2ME包含了一系列的配置和框架,如KVM(K Virtual Machine)是其虚拟机,CLDC(Connected Limited Device Configuration)针对内存有限的设备,而CDC(Connected Device Configuration)则面向功能更强大的设备。...
3. **用户界面编程**:如何使用MIDP API构建简单的到复杂的用户界面,包括按钮、文本输入、列表视图等组件的创建和事件处理。 4. **网络通信**:使用MIDP的Connection API进行HTTP、WAP等协议的网络通信,实现数据...
- `MIDP`建立在CLDC之上,为移动设备提供了一套特定的应用程序接口(API),用于创建用户界面、网络通信和游戏等功能。 - MIDP包含两个主要部分:MIDlet Suite(应用程序框架)和User Interface(用户界面)API,...
2. **CLDC和MIDP API**:学习如何使用CLDC和MIDP提供的API,例如怎样创建用户界面,处理事件,以及如何通过网络进行数据交换。 3. **KVM(K Virtual Machine)**:理解CLDC中的KVM是如何运行Java字节码的,以及它...
1. **CLDC和MIDP API的使用**:代码将展示如何在CLDC环境中使用基本的Java类和方法,以及如何利用MIDP提供的API来创建用户界面、处理用户输入和进行网络通信。 2. **线程管理**:在资源受限的设备上,有效地管理...
- **用户界面**:MIDP提供了轻量级用户界面(LWUI),包括Form、ChoiceGroup、TextBox等组件,用于构建简单的用户交互。 - **网络支持**:内置的HTTP和TCP/IP协议使得数据交换成为可能,支持WAP和互联网连接。 - ...
**MIDP(Mobile Information Device Profile)**则是建立在CLDC之上的,为移动设备提供了一套更丰富的API,允许开发者创建具有图形用户界面(GUI)、网络连接和多媒体功能的应用。MIDP2.0是MIDP的一个重要版本,增加...
1. **用户界面(User Interface, UI)**:MIDP提供了一组轻量级组件,如ChoiceGroup、TextBox和Form,用于创建简单的用户交互界面。 2. **无线通信API(WMA, Wireless Messaging API)**:允许MIDlets发送和接收SMS...
**一、CLDC与MIDP介绍** CLDC(Connected Limited Device Configuration)是Java ME(Micro Edition)的一部分,专为资源有限的移动设备设计,如早期的手机和PDA。它定义了运行在这些设备上的虚拟机和核心类库,...