![](/Emoticons/coffee.gif)
J2ME将所有的嵌入式装置区分为两种:一种是运算功能有限、电力供应也有限的嵌入式装置(PDA、手机等);另外一种是运算能力相对较佳、并在电力供应上相对比较充足的嵌入式装置(冷气机、电冰箱、机顶盒等)。
![](/Emoticons/coffee.gif)
由以上两种区分,Java引入了
Configuration的概念,然后把上述运算功能有限、电力有限的嵌入式装置定义在Connected Limited Device Configuration(
CLDC)规格之中;另一种装置则规范为Connected Device Configuration(
CDC)规格。即J2ME先把所有的嵌入式装置利用
Configuration的概念分割成两种抽象的型态。
![](/Emoticons/coffee.gif)
这里可以把
Configuration当作是J2ME对于两种类型嵌入式装置的规格,而这些规格之中定义了这些装置至少要符合的运算能力、供电能力、内存大小等规范,同时也定义了一组在这些装置上执行的Java程序所能使用的类别函数库、这些规范之中所定义的类别函数库为Java核心类别的子集合以及与该型态装置特性相符的扩充类别。比方就
CLDC的规范来说,可以支持的核心类别为java.lang.*、java.io.*、java.util.*,而可以支持的扩充类别为java.microedition.io.*。
![](/Emoticons/coffee.gif)
区分出两种主要的
Configuration之后,J2ME接着定义出
Profile的概念。
Profile是架构在
Configuration之上的规格。之所以有
Profile的概念,是为了要更明确地区分出各种嵌入式装置上Java程序该如何开发,具有哪些功能。因此Profile之中定义了与特定嵌入式装置非常相关的扩充类别,而Java程序在各种嵌入式装置的使用者接口该如何呈现的规定就是定义在
Profile里头。Profile之中所定义的扩充类别也是根据底层
Configuration内所定义的核心类别所建立。
根据某个
Profile规范所撰写的Java程序除了可以直接呼叫Profile中定义的扩充类别,也可以直接叫用
Configuration里头所定义的核心类别子集与扩充类别。
目前从
CLDC所衍生出来的Profile有两种,一种是Handheld Profile,大多数用在PDA上;而另外一种是Mobile Information Device Profile(
MIDP),这个
Profile是针对移动装置所定义,比方说呼叫器(Pager)移动电话等等,都属于移动装置。
Embedded Java与Personal Java似乎没有包含在两个
Configuration任何一个底下,不过他们还是归类在J2ME的范畴之中,而且也衍生出了Java的实时版本(Real-time Specification for Java)。Embedded Java与Personal Java会慢慢被架构在CDC之上的Profile所取代。以Personal Java来说,它的规格与Personal Profile的规格是兼容的。之所以目前还存有Embedded Java与Personal Java这两个名词主要原因是市场上已有大量采用这两种规格的作品,所以短期内Personal Java仍会继续演进,一时还无法归类到J2ME的特定
Profile之下。
![](/Emoticons/coffee.gif)
在Profile中定义了特定种类嵌入式装置的最小配置要求。
Profile建构在
Configuration之上,其意义是说
Profile中所规范的配备需求不可能比
Configuration还要低。同时,Profile之中对于显示功能、网络功能、以及耗电能力等相关需求将会比
Configuration之中所规定的还要高。底下是一些
Profile的配备需求:
配备/Profile | Foundation Profile | Personal Profile | MIDP
|
RAM
| 至少512K
| 至少1 MB
| RAM与ROM至少要为512K
|
ROM
| 至少1024K
| 至少2.5 MB
| RAM与ROM至少要为512K
|
电源
| 不设限
| 不设限
| 通常是使用电池,所以电源有限
|
网络连接能力
| 部分功能
| 部分功能
| 具有低频宽的无线通讯能力
|
其它
| 要有额外的RAM或ROM供应用程序执行
| 要有额外的RAM或ROM供应用程序执行
| 要有额外的RAM或ROM供应用程序执行并储存资料
|