协鑫刘治金:J2ME到底是什么?

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/23 19:08:03
请问各位大虾 J2ME到底是什么?
J2ME的前景如何?以及J2ME程序员在国内的薪资如何?谢谢!

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的前景如何?

J2ME 的前景很明显要比 J2SE 甚至 J2EE 来的复杂,但是复杂性也预示着 J2ME 能够支持的设备的多样性。总的来说,以我的方法学习一种特定的配置和简档并不很困难。许多情况下,J2ME 让我想起 1995 年的 Java 语言。

如果试图决定是否在嵌入式应用程序中使用 J2ME,您会发现有许多无法回答的问题。例如,我仍然不清楚何时 J2ME 的优势能超越它的成本,特别是鉴于虚拟机和 API 在已经资源限制的环境下使用的资源。

然而,随着规范的成型和更多简档的加入,我确信答案会出现,而且 J2ME 将巩固其在嵌入式设备领域的地位。通过 CDC 和 CLDC,Sun 已采取重要的步骤为该领域的开发人员的各种需求提供各种重要的服务。基础简档刚开始巩固,个人简档将在几个月内出台。作为开发人员,我们将与 J2ME 一同发展,如果仅是实验性的,并且使 Sun 以及其他在无线和嵌入设备市场的商家明确我们的需求。

在我国目前J2ME的薪资大约在3500--4500元/月。

J2ME概述
J2ME是一种通过许多部件和规范的技术, 这众多的部件和规范帮助 J2ME来满足这众多的消费产品的不同的需要。和所有的爪哇程式语言技术一样,在它的核心属于一种虚拟机。 就像使用所有 Java技术一样,J2ME的核心也在一种虚拟机中。 最初,用于 J2ME应用程序虚拟机的被称作 Kilobyte virtual machine或简称 KVM。就像它名称的含义, KVM比较小,通常只有 128K或更少。这比起我们通常了解和使用的 Java 2标准版 Java虚拟机 ( JVM )的 32 MB来说就小得多了

JAVA的微小版本,主要开发用于支持JAVA的手机上。