JavaStandardization&J2MEWH2006-11-24BenQConfidential(yyyy/mm/dd)2005,BenQCorporationBenQConfidential(2005/12/28)2005,BenQCorporationjava的标准化与J2ME•JCP-Java标准化组织–什么是JCP•JCP(JavaCommunityProcess)是一个开放的国际组织,主要由Java开发者以及被授权者组成,职能是发展和更新Java技术规范、参考实现(RI)、技术兼容包(TCK)。–JCP诞生的原因•Java语言的承诺是:一次编译,到处运行,为了防止Java不兼容情况的出现,1998JCP成立并正式运作,Java开源社群开始蓬勃发展。•SUN与微软的官司–JCP组织的特点•开放性,不但允许商业公司可以参,还允许个人、非盈利组织、学校等加入,这促使了Java开源运动的兴起。–JCP的官方网站•(yyyy/mm/dd)2005,BenQCorporationBenQConfidential(2005/12/28)2005,BenQCorporationjava的标准化与J2ME•JCP相关的几个主要名词解释–JSR(JavaSpecificationRequest)•JSR(Java规范请求)是指向JCP提出新增一个标准化技术规范的正式请求。任何人都可以提交JSR,以向Java平台增添新的API和服务。–TCK(TechnologyCompatibilityKit)•TCK用来验证JSR的实现是否合乎规范。•JSR规范的制定者必须提供一系列用来证明JSR的具体实现对规范兼容的测试用例、工具和说明文档。–EC(ExecutiveCommittee)•EC管理Java在JCP中的发展,负责批准JSR规范的通过,同时EC还负责调解规范和其相关测试单元的关系。•有两个EC:–SE/EEEC:他们分别负责检查桌面/服务器的Java技术,也就是负责Java标准版和Java企业版本的规范。–MEEC:主要负责检查嵌入式方面的Java技术,也就是负责JavaMicroEdition的规范。•EC成员都通过批准和否决起草的规范来影响着Java的未来,留有全部的Java规范和他们相关的RI、TCK的最终决定权,同时他们还检查修订版本。EC成员也有TCK测试争端的优先裁决权。BenQConfidential(yyyy/mm/dd)2005,BenQCorporationBenQConfidential(2005/12/28)2005,BenQCorporationjava的标准化与J2ME•EC席位介绍–MEEC的15个职位•15个职位,每个职位任期3年,每年选举一次。SUN保留一个永久的席位•席位一览:–2006年到期:EricssonAB、Panasonic、Motorola、Siemens、Vodafone–2007年到期:Intel、NTTDoCoMo、OrangeFrance、ResearchInMotion、Samsung–2008年到期:IBM、Nokia、Philips、Sony-Ericsson–BenQMobile的JSR•JSR229PaymentAPISpecLead:Jean-YvesBitterlich•JSR230DatasyncAPISpecLead:JensPaetzold•JSR246DeviceManagementSpecLead:JP•JSR253MobileTelephonySpecLead:WaldirRPiresJr•JSR259AdHocNetworkingSpecLead:JYB•JSR266UnifiedMessageBoxAccessSpecLead:MichaelLagally•JSR281IMSServicesSpecLead:VolkerBauche/MirkoNaumann•JSR304MobileTelephonyAPIversion2SpecLead:JP–2006年BenQ的StarSpecLead•VolkerBauche•JanEichholzBenQConfidential(yyyy/mm/dd)2005,BenQCorporationBenQConfidential(2005/12/28)2005,BenQCorporationjava的标准化与J2ME•嵌入式设备上的Java平台(一)–Java技术应用分为3版本,每个Java版本是一套技术的集合•J2SE,Java2的标准版,主要用于桌面应用软件的编程•J2EE,Java2的企业版,主要用于分布式的企业级应用程序开发•J2ME,主要应用于嵌入是系统开发,如手机和PDA的编程BenQConfidential(yyyy/mm/dd)2005,BenQCorporationBenQConfidential(2005/12/28)2005,BenQCorporationjava的标准化与J2ME•嵌入式设备上的Java平台(二)–J2ME的历史•1998年初,SunLab启动Spotless,研究嵌入式设备上的Java应用,–Spotless的目的是:为可联网的设备提供一个动态开扩展的应用开发平台,并保持java程序的运行一致性。–嵌入式Java虚拟机的特点是:»占用资源少»可移植性好»简单易用•Motorola,Nokia等设备制造商加入到KVM阵营,参与标准化工作–1999年秋,第一个标准化成果CLDC(JSR30)发布。CLDC定义了资源受限设备上最低公共标准。–同期,MIDP(JSR31)发布,在CLDC基础上定义了应用模型(MIDlet)以及一系列的API。BenQConfidential(yyyy/mm/dd)2005,BenQCorporationBenQConfidential(2005/12/28)2005,BenQCorporationjava的标准化与J2ME•嵌入式设备上的Java平台(三)–J2ME平台体系结构•Configuration–Configuration定义了设备制造商必须在该类别的设备中实现的最小Java平台,JVM是Configuration的一部分。»指定了支持的Java语言的特性»指定了支持Java的虚拟机特性»定义了基本的Java类库•Profile–Profile位于Configuration的上层,是针对一系列设备提供的类库的集合。»Profile的主要目的是确保一系列设备中,能提供一个统一的应用平台。»在J2ME中还有一个重要的概念是可选包(OptionalPackage),它是针对特定设备提供的类库,比如某些设备是支持蓝牙的,针对此功能J2ME中制定了JSR82(BluetoothAPI)提供了对蓝牙的支持。BenQConfidential(yyyy/mm/dd)2005,BenQCorporationBenQConfidential(2005/12/28)2005,BenQCorporationjava的标准化与J2ME•嵌入式设备上的Java平台(四)–J2ME中两个最主要的Configuration•CLDC(Connected,LimitedDeviceConfiguration,JSR30,JSR139)–面向内存小,低带宽,电力受限的设备,如手机、呼机等–CLDC通常运行在KVM之上,K代表Kilo,KVM的特点是»小型的,占用内存小»清晰,移植性好»模块化,可定制»速度快,效率高•CDC(ConnectedDeviceConfiguration,JSR36,JSR218)–面向高端消费类设备,通常使用TCP/IP协议,如电视机顶盒、高端通信设备、车载娱乐/导航系统–为了区别KVM,CDC运行的环境叫CVM,CVM支持许多KVM所不支持的特性,如JNI,Reflection等BenQConfidential(yyyy/mm/dd)2005,BenQCorporationBenQConfidential(2005/12/28)2005,BenQCorporationjava的标准化与J2ME•嵌入式设备上的Java平台(五)–手机上的Java平台MIDP•MIDP(MobileInformationDevicesProfile,JSR37,118,271)–MIDP是面对小型、资源受限的移动通信设备创建的一个重要的Profile–MIDP是基于CLDC这个Configuration的–目前大多数的手机支持CLDC和MIDP,例如Amber支持CLDC1.0和MIDP2.0BenQConfidential(yyyy/mm/dd)2005,BenQCorporationBenQConfidential(2005/12/28)2005,BenQCorporationjava的标准化与J2ME•嵌入式设备上的Java平台(六)–手机上的Java平台MIDP•MIDP是基于CLDC的。•CLDC提供的功能–Java语言跟虚拟机的支持–Java最小核心类库(java.lang;java.io;java.util)–网络支持–安全模型–国际化•MIDP提供的功能–应用模型(MIDlet)–用户界面支持(LCDUI)–存储(RMS)–定时器BenQConfidential(yyyy/mm/dd)2005,BenQCorporationBenQConfidential(2005/12/28)2005,BenQCorporationjava的标准化与J2ME•嵌入式设备上的Java平台(七)–MIDP应用模型•设备上3种应用模型–本地应用,非java软件,运行在本地系统软件之上–OEM特定应用,使用了非规范的MIDP定义的类库–MIDP应用,移植性好,可以运行在支持MIDP的设备上•MIDlet的三种状态–Paused–Active–DestroyedBenQConfidential(yyyy/mm/dd)2005,BenQCorporationBenQConfidential(2005/12/28)2005,BenQCorporationjava的标准化与J2ME•嵌入式设备上的Java平台(八)–CDC平台介绍•CLDC的局限性–不支持浮点数(CLDC1.0)–没有finalization、异常处理受限制–不支持自定义ClassLoader,JNI、reflection,线程组…•CDC平台上的几个ProfileBenQConfidential(yyyy/mm/dd)2005,BenQCorporationBenQConfidential(2005/12/28)2005,BenQCorporationjava的标准化与J2ME•嵌入式设备上的Java平台(九)•CDC上的几个Profile•FP(FoundationProfile,JSR46/219)•该规范并没有包含任何用户界面包,为其他基于CDC的Profile提供一个基础,它比CLDC提供了更好的安全性、更多的工具包。•该规范适合于某些无用户界面但有网络连接的专用嵌入设备。•PBP(PersonalBasisProfile,JSR129/217)•它定义了最小的AWT用户界面包、JavaBeans支持相关包、应用程序生命周期类。PBP应用程序也叫Xlet。•PBP主要范针对有网络连接并有基本图形界面的设备。如交互数字电视、信息电话亭等。•PP(PersonalProfile,JSR62/216)•它是PersonalJava环境的具体实现,是PBP的超集,提供了CDC、FP和PBP中描述的所有Java包。还增加了其他Profile缺少的AWT类和Applet支持。•PP主要针对高端设备,对内存要求也比较高(大于2MB)。BenQConfidential(yyyy/mm/dd)