第六章:CLDC API
介绍
迄今为止,我们知道 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编程概述** 本章主要探讨的是Connected Limited Device Configuration(CLDC)的编程基础知识,CLDC是Java 2 Micro Edition(J2ME)的一部分,专为资源有限的移动设备和嵌入式系统设计。以下是CLDC...
**第六章:数据存储与持久化** 由于移动设备的限制,J2ME提供了特有的数据存储解决方案,如Record Management System (RMS)。我们将学习如何使用RMS存储和检索数据,以及在没有文件系统的情况下进行数据的持久化。 ...
在CLDC 1.0环境中,由于API限制,没有内置的JSON库支持。因此,开发者需要自定义JSON解析器或者寻找第三方库来处理JSON数据。"cldc1.0的json实现"这个项目可能是为了解决这一问题,提供一个适合CLDC 1.0环境的JSON...
- CLDC 1.1是CLDC的第二个版本,它在CLDC 1.0的基础上进行了增强,提供了更丰富的API和更好的性能优化。该版本主要是为了适应更复杂的移动应用需求,比如增强的网络功能和多媒体支持。 2. **源码结构** - 解压后...
- **设置WTK的工程属性和开发环境**:包括JAD/清单属性设置、工程目录管理、第三方类库集成等。 - **WTK的模拟器使用**:提供了多种模拟器,用于测试不同设备上的应用表现。 #### 五、J2ME应用开发环境的选择和配置...
理解J2ME API文档是开发J2ME应用程序的第一步。开发者可以通过阅读`index.html`文件获取API的整体结构和类库概述。每个类和接口都详细描述了其功能、方法和属性。此外,示例代码和教程有助于快速掌握API的用法。 在...
第六章“GAME API” 介绍了MIDP 2.0相对于1.0来说,最大的变化——新添加的用于支持游戏的API,它们被放在javax.microedition.lcdui.game包中。游戏API包提供了一系列针对无线设备的游戏开发类。你可以开发你的游戏...
第六章“GAME API” 介绍了MIDP 2.0 相对于1.0 来说,最大的变化——新添加的用于支 持游戏的API,它们被放在javax.microedition.lcdui.game 包中。游戏API 包提供了一系列针对无 线设备的游戏开发类。你可以开发你...
第六章“GAME API” 介绍了 MIDP 2.0 相对于1.0 来说,最大的变化——新添加的用于支 持游戏的API,它们被放在javax.microedition.lcdui.game 包中。游戏API 包提供了一系列针对无 线设备的游戏开发类。你可以开发你...
7. **开发实践**:使用这种非官方或第三方的API时,开发者需要自行承担维护和更新的责任,因为它们可能没有官方支持,可能存在兼容性问题,或者在新设备或操作系统上运行不顺畅。同时,测试和调试过程也更为重要,以...
虽然J2ME API的图形和音频功能相对有限,但通过LWUIT和其他第三方库,开发者可以创建具有复杂动画和音效的游戏。 总结来说,J2ME API 是移动开发的重要工具,它的MIDP规范尤其对于手机应用开发至关重要。通过理解并...
- **第6章**:可能涵盖了多媒体处理,如音频和图像的加载与播放。 - **第7章**:可能讲解了游戏开发,涉及动画处理、碰撞检测等高级话题。 - **第8章**:可能介绍了更复杂的主题,如线程管理、性能优化或者自定义...
第六章“GAME API” 介绍了MIDP 2.0相对于1.0来说,最大的变化——新添加的用于支持游戏的API,它们被放在javax.microedition.lcdui.game包中。游戏API包提供了一系列针对无线设备的游戏开发类。你可以开发你的游戏...
### 第六章 Game API J2ME提供了Game API,用于开发2D游戏。它包含Sound、Image和Animation类,支持声音播放、图像加载和动画制作。同时,低级别的Graphics类提供了像素级别的绘图控制,实现游戏中的复杂图形操作。...
第一章 绪论 1 1.1 研究背景 1 1.2 研究内容 1 第二章 J2ME及其体系结构概述 2 2.1 J2ME简介 2 2.2 J2ME 体系结构 2 2.3 移动信息设备简表概述 3 2.3.1 MIDP的目标硬件环境 3 2.3.2 MIDP应用程序 3 2.3.3 CLDC和MIDP...
第一章 绪论 1 1.1 研究背景 1 1.2 研究内容 1 第二章 J2ME及其体系结构概述 2 2.1 J2ME简介 2 2.2 J2ME 体系结构 2 2.3 移动信息设备简表概述 3 2.3.1 MIDP的目标硬件环境 3 2.3.2 MIDP应用程序 3 2.3.3 CLDC和MIDP...
### 第一章:J2ME入门 1. **J2ME体系结构**:J2ME由几个关键组件构成,包括Connected Limited Device Configuration (CLDC)和Connected Device Configuration (CDC)。CLDC适用于内存和处理能力有限的设备,如基本...
6. **第7章-手机游戏开发**: - 游戏框架:如LWUIT、Game API等,用于创建游戏逻辑和图形渲染。 - 时间循环和事件处理:实现游戏循环,处理碰撞检测和用户输入。 7. **第8章-游戏案例分析**: - 实战案例:通过...