J2ME规范体系介绍(JCP & JSR)

来源: Porting Fans — 手机软件开发与移植

  在国际上,有一个由Sun主导的标准化组织JCP(Java Community Process),该组织根据领域的不同,分为三个大的工作方向,即J2EE,J2SE和J2ME。而J2ME领域的标准的制定者,包括业界知名的运营商,如Vodafone,Orange,中国移动等;终端制造商,如Nokia,Motorola,Sumsung等;提供Java虚拟机的厂商,如IBM、Aplix、Esmertec等;以及一些感兴趣的公司团体。

  JCP中的每个规范被称为JSR(Java Specification Request)。各个JSR分别从不同的角度对Java虚拟机的能力进行了规范,并对应一个数字编号,如JSR75规定了Java应用如何通过虚拟机提供的接口访问终端操作系统的PIM数据和文件系统。此外,还包括针对对蓝牙、多媒体、短信、彩信等的JSR。而这些规范的发布、更新和维护由JCP来统一管理,确保了让业界不同角色的厂商能够共同参与定义J2ME平台的能力,共同推进Java技术向前发展。

  虽然Java是本着跨平台的目的而产生的技术,但是在移动终端领域却没能完全实现这一宏伟的目标。由于设备没有一个统一的标准的软件运行环境,导致了API的分裂。开发者在针对某些机型进行开发之前还必须要查询这个设备到底支持什么功能,有哪些是标准的API,哪些是可选包和厂商提供的API。这无疑给开发带来了不便,同时使得程序的可移植性大大降低。如果你得程序中使用了Nokia的API那么程序很难在其他厂商的机器上跑。所以,J2ME在不同的移动终端平台上由于实现的不同而造成的分裂局面成了待解决的问题。

  为了解决如上的问题,在J2ME的发展过程中,产生了以下几个具有里程碑意义的JSR:

  1. JSR185 -- JTWI(Java Technology of Wireless Industry)

  该规范于2003年7月发布。JTWI并没有提出新的技术,也没有提供新的API,它对J2ME的运行环境作了规范,提供了一个标准的更加严格的运行环境,这有效地减小了API的分裂并提高了程序的可移植性。JTWI包含以下规范:

  JSR30 -- CLDC1.0:提供了基本的语言类库,但是不支持浮点运算。可以用CLDC1.1替代1.0;

  JSR118 -- MIDP2.0 :提供了图形用户界面、持久性存储、游戏和多媒体等功能模块的支持;

  JSR120 – WMA (Wireless Messaging API):提供了短消息功能的支持

  JSR135 – MMAPI (Mobile Media API):提供了对多媒体的全面支持,MIDP2.0中的多媒体部分是MMAPI的子集,该规范是JTWI中可选的部分。

  注:JSR185 – JTWI对如下的一些方面进行了规范,实现JTWI的设备必须遵守这些规范
  1. 规定了标准应用程序的大小,设备必须支持64K大小的应用程序和5K的JAD文件。持久性存储的大小为30KB,heap空间从MIDP2.0中的128KB提高到256KB
  2. 记事功能,这样你可以使用PushRegistry的registerAlarm()方法
  3. JSR185对设备的屏幕尺寸作了建议125*125/12bits。设备必须支持JPEG格式的图片。HTTP1.1必须被支持
  4. JSR185是基于WMA的,因此设备必须具备短消息发送和接受的能力,JSR185还规定,应用程序在准备发送短消息的时候,当提供了TextField和TextBox组件的时候,应该可以给用户弹出本机电话本可以选择
  5. 对移动多媒体进行支持,必须实现对MIDI和单音的支持

  2. JSR248 – MSA1.0(Mobile Service Architecture 1.0)

  该规范于2006年12月发布,由于JSR185是针对当时的市场状况而制定的,主要针对低端市场,而终端的硬件能力是一直不断的往前发展的,所以JSR248制定的初衷就是为了满足不断发展变化的市场需求,增加了能充分体现新上市的终端的硬件能力的需求。JSR248在JSR185架构的基础上,增加了新的JSR,在充分考虑到市场现状的同时,也对未来的市场发展做了预测,所以在规范的制定上留了一定的空间,延长了规范的生命周期。这些变化,在规范上具体体现在架构设计上。JSR248规定了两个级别的架构,MSA Subset和MSA,如下图所示。

  除此之外,对其架构中包含的每一个JSR,MSA1.0都做了相应的澄清,例如,在CLDC中规定,分配给虚拟机的堆大小为32k字节,而随着终端能力的发展,32k字节的堆大小已经不再是瓶颈,而且这样的大小,已经不足以支持一些游戏和多媒体类应用的流畅运行,所以,在MSA1.0里面,对CLDC做了将堆大小调整为1024k字节的澄清,充分满足了应用的需求,同时也有利于Java业务的开展。

 

如果说上图是从终端能力的角度对JSR248进行了表示,那么下图则从不同功能的角度对JSR248进行了另一种表示,可以看出,JSR248在制定的过程中,比较全面的考虑到了多元化的功能,如安全和电子商务,图形处理,多种通信方式,用户的个人信息等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值