您的位置:首页 > 其它

J2ME配置(CDC-CLDC)

2009-12-31 09:04 148 查看
J2ME配置CDC - CLDC

1、J2ME对嵌入式设备的定义。
J2ME将嵌入式设备定义为2类:连接设备、连接限制设备。
J2ME用2种配置来定义不同的设备。

2、J2ME配置包含的内容。
配置(configuration)包括虚拟机(virtual machine),核心的类库与API。configuration层定义一个java虚拟机的特性与java类库的最小子集。也就是说,configuration层提供了开发人员一个最基础,最核心的Java平台。

3、CDC与CLDC。
CDC (Connected Device Configuration,连接设备配置),运行在这一配置上的程序称为J2ME Application,在CVM上进行解释。
CLDC(Connected Limited Device Configuration,连接限制设备配置),运行在这一配置上的程序称为MIDlet ,在KVM上进行解释。

4、J2ME中虚拟机。
在 J2ME 中有两类虚拟机:CVM (C Virtual Machine,C虚拟机)与 KVM (K Virtual Machine,K虚拟机)。KVM 和 CVM均可被看作是一种 Java 虚拟机,是 JVM 的子集,在功能上都是 JVM 的缩减版。这两类虚拟机的适用范围并不相同,简单地说,CVM 的功能比KVM 功能更为强大。
这里再补充一点,J2ME还包括对了Java Card 的定义,用于各类IC卡。JavaCard 和CDC/CLDC在J2ME中是相同的地位。

5、CLDC 与CDC的对比
CDC
CLDC
硬件设备参数
针对32位的处理器主频通常在75MHz以上,内存可能在1~4MB
CPU为16位、32位主频在 16MHz以上的处理器,设备的内存比较少,可能只有512KB,甚至更少。现在硬件的发展非常快,以前所定义的CLDC的设备目前的设备甚至远远超过原来的定义。不过请注意一下,J2ME 对CLDC设备配置的定义只是一个最低要求的定义。要分辨CLDC设备主要要从设备特点上进行区别
支持设备种类
数字电视、机顶盒、网络电话、车载计算设备等
Nokia 7650,Nokia 3650, PDA设备、智能手机等
设备特点:
有线连接
电源稳定
设备外设资源比较受限
无线连接
没有稳定的电源供应(通常使用电池)
设备外设资源极少
API
CDC 是建立在 CLDC 顶部的 API,是整个 J2SE API 的一个更完整的子集。它还包含一个额外的软件包 -- javax.microedition.io 软件包 -- 包含 CLDC 中定义的所有相同的类和接口,及其它。

CDC 中的一些更值得注意的功能是 CLDC 中所没有的:

支持浮点数(包括 java.lang.Float、java.lang.Double 和 java.lang.StrictMath 类)
classloader 类 (java.lang.ClassLoader)
支持本地进程 (java.lang.Process)
高级多线程支持(包括支持线程组和更多线程)
串行化的类 (java.io.Serialiable 和 java.io.Externalizable)
映象 API(包括 java.lang.reflect 软件包)
文件系统支持
支持 J2SE 类型网络 (java.net)
对 J2SE Collections API 更完全的支持
为 javax.microedition.io 软件包增加一个 HttpConnection 接口。这样可为 HTTP 连接提供必要的方法和常量。
支持 J2SE 的 java.lang.ref、java.math、java.security、java.security.cert、java.text、java.util.jar 和 java.util.zip 软件包

·CLDC API 实际上只是 J2SE 的一个子集,它包括 java.lang、java.io 和 java.util, javax.microedition。
·CLDC API 文档的副本位于安装 J2ME CLDC 时创建的 j2me_cldc/docs 目录下。

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 核心运行时类
Class -- 显示正在运行的 Java 应用程序中的类和接口。
Object -- 与在 J2SE 中相同,Object 是所有 Java 对象的基本类。
Runtime -- 为 Java 应用程序提供一种与运行时环境(Java 应用程序在其中运行)进行交互的方法。
System -- 提供一些静态的帮助方法,就像为 J2SE 提供方法一样。
Thread -- 定义 Java 程序的一个执行线程。
Throwable -- Java 语言中所有错误和异常的超级类。

java.lang 核心数据类型类
Boolean -- 包装 boolean 原始数据类型。
Byte —- 包装 byte 原始数据类型。
Character -- 包装 char 原始数据类型。
Integer -- 包装 int 原始数据类型。
Long -- 包装 long 原始数据类型。
Short -- 包装 short 原始数据类型。

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 -- 定义了一个流连接的通告程序必须具有的性能。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: