动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Java教程 ]的信息

本月文章推荐
.我常用的邮件发送类.
.[JAVA100例]038、操作Excel文件.
.有什么理由不使用Spring?.
.Java中鲜为人知的缺点(上).
.关于JAVA import 的一个小问题.
.使用JBoss和PostgreSQL-快速开发.
.在.Net程序中使用log4net记录日志.
.dom规范和在java中的实现 sunmin.
.基于weblogic 的ejb 学习笔记(二.
.设计表现层时需要考虑的几个问题.
.JBuilder2005实现重构之重构前的.
.如何将JAVA生成可执行文件?.
.Java 理论和实践:那是您的最终答.
.Java编程准则.
.改写equals的时候遵守约定.
..Net-Java 争论的再次回顾.
.走向J2EE,漫长的道路.
.JAVA优质代码编写的30条可行建议.
.在Java程序中运行外部类文件.
.开启了我的第一个开源项目OpenMi.

Java 2 Micro Edition简介(三)

发表日期:2008-1-5 |



?Java 版本的演进

相信熟悉Java历史的人或多或少都听说过,Java技术一开始并非就叫做Java,而是叫做OAK,而且最早的时候就是为了嵌入式系统而设计的产品。后来因为网际网络的发达,而OAK的诸多特性刚好又适合用在网络上(例如可移植性、编译后程序代码很小),因此被改名成Java,从此因缘际会地成了网络上的闪亮巨星。随着时间越来越成熟,也慢慢地产生了许多非原本预期中的相关运用。虽然Java已经被用到许多企业级软件上,可是其实骨子里面还是非常适合用在嵌入式系统之中。
Java版本的历史演进如下图所示:




从图中大家可以发现,虽然从Java 1.0发表之后,Java就被广泛地使用在桌上型应用程序以及Applet的开发上,但是,从Java 1.1开始,Java又回到了它一开始的老路--也就是嵌入式系统上面的应用,在当时Sun Microsystems发表了Embedded Java与Personal Java(也有人简称为PJava)这两项规格。

其中Embedded Java是为了资源十分有限,而且没有显示设备的装置而设计; Personal Java则是为在能够与网际网络联机、并拥有显示系统(例如彩色LCD)的消费性电子装置而设计。

接着Java的版本演进到Java 2,这时为了再明显区分各种Java的应用,所以分割出了J2EE、J2SE、以及J2ME三种版本。这三种版本的各种特性我们已经在前面具体的描述过,在此不再赘述。不过请大家记住,由于Java 2将Java的应用区分成三大块,使得Java程序语言的发展不会再像Java 1.1时如树枝状般扩散出去,这幺一来有助于大家对Java各种应用的厘清,而不会造成今后越发展下去越不可收拾的混乱局面。

额外向大家一提的是,后来Personal Java发展到1.2版的时候,也采用了一些Java 2平台上与安全性有关的设计。

?Java 2 Micro Edition概观

J2ME在设计其规格的时候,遵循着「对于各种不同的装置而造出一个单一的开发系统是没有意义的事」这个基本原则。于是J2ME先将所有的嵌入式装置大体上区分为两种:一种是运算功能有限、电力供给也有限的嵌入式装置(比方说PDA、手机);另外一种是运算能力相对较佳、并请在电力供给上相对比较充足的嵌入式装置(比方说冷气机、电冰箱、电视机上盒(set-top box))。因为这两种区分,所以Java引入了一个叫做Configuration的概念,然后把上述运算功能有限、电力有限的嵌入式装置定义在Connected Limited Device Configuration(CLDC)规格之中;而另外一种装置则规范为Connected Device Configuration(CDC)规格。也就是说,J2ME先把所有的嵌入式装置利用Configuration的概念区隔成两种抽象的型态。

其实在这里大家可以把Configuration当作是J2ME对于两种类型嵌入式装置的规格,而这些规格之中定义了这些装置至少要符合的运算能力、供电能力、内存大小等规范,同时也定了一组在这些装置上执行的Java程序所能使用的类别函式库、这些规范之中所定义的类别函式库为Java核心类别的子集合以及与该型态装置特性相符的扩充类别。比方就CLDC的规范来说,可以支持的核心类别为java.lang.*、java.io.*、java.util.*,而可以支持的扩充类别为java.microedition.io.*。
区分出两种主要的Configuration之后,J2ME接着在定义出Profile的概念。Profile是架构在Configuration之上的规格。之所以有Profile的概念,是为了要更明确地区分出各种嵌入式装置上Java程序该如何开发,具有哪些功能。因此Profile之中定义了与特定嵌入式装置非常相关的扩充类别,而Java程序在各种嵌入式装置的使用者接口该如何呈现的规定就是定义在Profile里头。Profile之中所定义的扩充类别也是根据底层Configuration内所定义的核心类别所建立。
嵌入式系统上的Java程序、Profile、Configuration、虚拟机器、操作系统、以及实体装置之间的关系如下图所示:



从上图大家一定可以发现,根据某个Profile规范所撰写的Java程序除了可以直接呼叫Profile中定义的扩充类别,也可以直接叫用Configuration里头所定义的核心类别子集与扩充类别。

目前J2ME对于Configuration以及Profile所组成的架构大致如下图所示:



从上图可以看出,目前从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之下。

?CLDC、CDC以及他们所衍生出来的Profile之规格

既然Sun将所有的嵌入式装置区分成CLDC 与CDC两种,接下来我们先就这两种Configuration做讨论。
Connected Limited Device Configuration(CLDC)就Sun的文件所描述,是定义为「可以放在您的手掌上的装置」,比方说Palm系列的PDA或是手机就是最好的例子。而Connected Device Configuration(CDC)根据Sun文件的描述,定义为「可以插在墙壁上的装置」,比方说电视机上盒(set-top box)就是一个例子。不管如何,这两种Configuration之中定义的皆为这两种型态的嵌入式装置要执行Java程序所需要的最小配备需求。底下是CLDC与CDC各自的最小配备需求:


配备Configuration
CLDC
CDC

RAM
RAM与ROM再加上闪存(Flash Memory)要为128K~512K。
大于等于256K

ROM
RAM与ROM加上闪存要为128K~512K。
大于等于512K

电源
通常是使用电池,所以电源有限。
不设限


在Javasoft的官方文件之中所架构出来的J2ME如下图所示:



根据上图,我们来讨论一下建构在Configuration之上的Profile。在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供给用程序执行并储存资料


虽然官方文件之中绘出J2ME的美好远景,其实这些规格还有待大家努力。在本者撰写本文的时候,我们所能找到有关Configuration的规格只有完整的CLDC规格(v1.0)。而有关Profile的规格只有Mobile Information Device Profile的规格已经底定(v1.0),而其它如Personal Profile、 Foundation Profile、RMI Profile,因为是根据CDC所订定,而CDC的规格尚未底定(v0.2),所以这三个Profile的规格目前只有v0.x版。其余的Profile就连规格都还在草拟之中了。假如您对这些正在草拟的规格有有爱好的话,请到Java Community Process (JCP)的网页http://java.sun.com/aboutJava/communityprocess/上观察Java Specification Request (JSR)的后续进展。底下表格是J2ME相关的jsp之所在位置:


JSR #000068
J2METM Platform Specification
http://java.sun.com/aboutJava/communityprocess/jsr/jsr_068_j2me.Html


JSR #000030
J2ME Connected, Limited Device Configuration
http://java.sun.com/aboutJava/communityprocess/final/jsr030/index.html


JSR #000036
J2METM Connected Device Configuration
http://java.sun.com/aboutJava/communityprocess/jsr/jsr_036_j2mecd.html


JSR #000037
Mobile Information Device Profile for the J2METM Platform
http://java.sun.com/aboutJava/communityprocess/jsr/jsr_037_mid.html


JSR #000075
PDA Profile for J2METM
http://java.sun.com/aboutJava/communityprocess/jsr/jsr_075_pda.html


JSR #000062
Personal Profile Specification
http://java.sun.com/aboutJava/communityprocess/jsr/jsr_062_pprof.html


JSR #000046
J2METM Foundation Profile
http://java.sun.com/aboutJava/communityprocess/jsr/jsr_046_j2mefnd.html


JSR #000066
J2METM RMI Profile
http://java.sun.com/aboutJava/communityprocess/jsr/jsr_066_rmime.html



虽然已经底定的Profile规格并不多,可是以目前来说,已经足以让我们能够撰写PDA(PlamOS)和手机(Motorola)上的应用程序了。各位读者可以在CLDC参考实做的内附文件之中,除了可以找到CLDC规格所订定的核心类别子集与扩充类别之说明文件,也可以发现与PalmOS相关扩充类别(com.sun.kjava.*)的说明文件。同理,我们除了可以在Motorola J2ME SDK之中找到CLDC支持的核心类别子集与扩充类别之说明文件,同时也可以找到和Mobile Information Device Profile(MIDP)相关的扩充类别(javax.microedition.midlet.*、javax.microedition.lcdui.*、javax.microedition.rms.*)之说明文件。

Personal Java的发展其实以一段时间了,无数的公司根据其规格生产实作品,所以接下来将针对Personal Java做个别探讨。
上一篇:jakarta-log4j的使用(java调试工具) 人气:458
下一篇:Java 2 Micro Edition简介(二) 人气:388
浏览全部Java的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-8-21 Nucleus v3.33 多国语言版
2008-8-21 HDWiki v4.0 bulid 080821 UTF-8
2008-8-21 明科在线客服系统 v6.0
2008-8-21 KesionCMS v5.0.2 正式版 utf-8
2008-8-21 KesionEshop v5.0.2 正式版 utf-8
2008-8-21 HDWiki v4.0 bulid 080821 GBK
2008-8-21 新文互动酷站展示系统 v1.5
2008-8-21 Punbb v1.2.20 多国语言版
2008-8-21 QQ头像网 beta
2008-8-16 iLaba Player(小喇叭播放器) v2.
2008-8-16 DoubleClickFix 鼠标双击修正工具
2008-8-16 CrystalCPUID 4.15.2.451
2008-8-16 VeryCD 电驴(easyMule) 1.0.4 Bu
2008-8-16 uTorrent 1.8 Build 11813 - Sta
2008-8-16 比特精灵(BitSpirit) v3.3.2.287
2008-8-16 StayInTune音叉 v1.0 破解版
2008-8-16 iChing《周易》汉化补丁 v1.0
2008-8-16 Starmap星空图v1.0汉化破解版
  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号