J2ME,即Java 2 Micro Edition,是SUN公司推出的在移动设备上运行的微型版Java平台,常见的移动设备有手机,PDA,电子词典,以及各式各样的信息终端如机顶盒等等。
由于移动终端的类型成千上万,而且计算能力差异非常大,不可能像桌面系统那样仅仅两三个版本的JVM即可满足Windows,Linux和Unix系统,因此,J2ME不是一个简单的微型版的JVM。为了满足千差万别的移动设备的需求,SUN定义了一系列的针对不同类型设备的规范,因此,J2ME平台便是由许多的规范组成的集合。
最重要的移动终端当然是手机了,因此,我们主要讨论手机相关的J2ME规范。
Configuration
SUN把不同的设备按照计算能力分为CLDC(Connected Limited Device Configuration)和CDC(Connected Device Configuration)两大类,这两个Configuration是针对设备软硬件环境严格定义的,比如CLDC1.0定义了内存大小为64-512k,任何设备如果支持CLDC1.0,就必须严格满足定义,不能有可选的或者含糊的功能。
CLDC1.0是针对计算能力非常有限的设备定义的,只支持整数运算,不支持浮点运算,早期的Java手机大部分都支持CLDC1.0,如Nokia 3650,Siemens 6688i。
CLDC1.1则增加了浮点运算,因此,在支持CLDC1.1的设备上,可以使用float和double类型的变量。现在的Java手机很多都能支持CLDC1.1,如Nokia 9500,Siemens S65。
CDC则是针对计算能力比较强的设备定义的,如PPC等,CDC平台的JVM基本上和桌面的JVM很接近了,只是可以使用的Package大大少于J2SE的包。支持CDC的非常高端的Java手机也会很快上市。
Profile
和Configuration相比,Profile更多是针对软件接口的定义,Profile有必须实现的,也有可选的功能,因此,Profile更灵活。
最重要的Profile当然是MIDP(Micro Information Device Profile),MIDP定义了能在Java手机上运行的Java程序的规范,包括应用程序生命周期,各种UI界面组件,支持Record存储和Http连接等等,符合MIDP规范的Java小程序被称为MIDlet,可以直接通过无线网络下载到手机并运行。
早期的MIDP1.0规范使我们能在手机上运行有UI界面的Java程序,但是MIDP1.0对游戏的支持不够,必须自己实现许多代码,因此,MIDP2.0规范大大加强了对游戏开发的支持,使开发者能编写更少的代码来创建游戏。
MIDP规范的图形界面基本上都是独立于J2SE的AWT和Swing组件,因为目前手机的计算能力还比较有限,但是,随着手机的CPU越来越快,使得AWT和Swing移植到手机上也将成为可能,因此,基于CDC规范的最新的PBP 1.0(Personal Basic Profile)和PP 1.0(Personal Profile)提供了部分AWT和Swing的支持,目前,部分高端PDA已经可以运行PBP和PP的Java程序了。可以预见,将来大部分的AWT和Swing组件都能移植到手机上。
前面已经说过,和Configuration相比,Profile有许多可选包,比较实用的Profile还有在JSR135定义的MMAPI(Mobile Media API),实现多媒体播放功能;在JSR184定义的M3G API(Mobile 3D Graphics API),实现3D功能;在JSR120定义的WMA(Wireless Messaging API),实现短消息收发。如果你的手机支持某一Profile,如M3G,那么便可以在MIDlet中使用M3G的3D API实现3D游戏。
如果你准备在手机上开发J2ME应用,选择手机时就需要注意厂商支持的CLDC规范,支持MIDP1.0还是2.0,是否支持MMAPI,M3G,WMA等可选包。
Profile虽然定义了Java API接口,但是底层如何实现是由各厂商自己决定的,如M3G定义了3D接口,但是底层实现既可以使用硬件加速,也可以由C程序模拟,或者部分由硬件实现,部分由软件实现。
比J2ME更精简的Java平台被SUN称为JavaCard,运行在信用卡等芯片中,实现电子支付等功能,目前SUN还没有把JavaCard并入J2ME平台。
分享到:
相关推荐
这是一个关于在 j2me中解析xmlr jar 包,与j2se解析xml 有所不同,所以使用的jar 包也不同,希望对你有帮助。
J2ME开发中解析XML,J2ME开发中解析XML
j2me wml 解析例子,一个简单的wml解析。
JDK、J2EE、J2SE、J2ME概念详解
在J2ME下对XML文件进行解析的示例源码及帮助文件
J2ME RPG 游戏 代码教您轻松实现手机游戏编程
j2me解析网页的方法,让你清楚的知道怎么解析,html,wml,xml,jsp...网页
解析用于J2ME开发平台的We解析用于J2ME开发平台的Web服务APIb解析用于J2ME开发平台的Web服务API服务API解析用于J2ME开解析用于J2ME开发平台的Web服务API发平台的Web服务API
J2ME开发 J2ME开发 J2ME开发 J2ME开发
J2ME API J2ME API J2ME API J2ME API J2ME API
J2ME中RMS存储工具使用解析,希望对大家有用!
j2me入门教程j2me入门教程j2me入门教程j2me入门教程j2me入门教程
J2ME培训教程,以前学JJ2ME培训教程J2ME培训教程J2ME培训教程J2ME培训教程J2ME培训教程J2ME培训教程J2ME培训教程J2ME培训教程J2ME培训教程J2ME培训教程J2ME培训教程2ME发的一个PPT,内容还可以,需要的朋友不要客气J2ME...
j2me实现的LRC歌词解析.可以解析标准LRC歌词,方便大家实现歌词同步播放
J2ME游戏开发 J2ME游戏开发 J2ME游戏开发
本文向大家简单介绍一下JDK、J2EE、J2SE、J2ME概念及区别,J2EE,J2SE,J2ME是java针对不同的的使用来提供不同的服务,也就是提供不同类型的类库。
J2ME常用API(中文).CHM midp2.0的常用API
最近做手机浏览器项目中的CSS模块。对解析css有了个整体认识. 总的思路为 : 先解析标签,其次class,再是#id ,然后再找出id和class的复合样式,并通过parserComplexStyleToNode()方法进行排列,并赋予样式值。
j2me手机浏览器 j2me手机浏览器 j2me手机浏览器
J2ME小游戏J2ME小游戏J2ME小游戏J2ME小游戏J2ME小游戏J2ME小游戏