CLDC1.0是在2000年的10月份推出的,随后SUN又发布了包括RMS和UI等特性的MIDP1.0,这对业界的震动很大,很快就有开发者针对移动信息设备开发应用了。随着设备能力的提高在JSR118又推出了功能更为强大的MIDP2.0。但是从MIDP1.0的发展历程可以看到一些问题,由于CLDC1.0+MIDP1.0的配合提供的API有限,所有各个厂商就开发了自己设备独有的API。同时为了针对各个设备不同的功能特性,J2ME中提出了可选包的概念,比如Bluetooth,PIM等。这造成了API被分裂和可移植性降低的后果。
由于设备没有一个统一的标准的软件运行环境,导致了API的分裂。开发者在针对某些机型进行开发之前还必须要查询这个设备到底支持什么功能,有哪些是标准的API,哪些是可选包和厂商提供的API。这无疑给开发带来了不便。
由于没有一个统一的标准的针对设备的规范,这就使得程序的可移植性大大降低。如果你得程序中使用了Nokia的API那么程序很难在其他厂商的机器上跑。即使你是用了标准的API,你得程序也不一定就能够移植,各个厂商对应用程序的大小限制不一样,有的是30K,有的是50K。对线程支持的程度也不一样,有的可以支持3个,有的是5个。
Java Technology for Wireless Industry出现的目的则是为了解决如上两个问题,它是在JSR185中提出的。JTWI并没有提出新的技术,也没有提供新的API。它对J2ME的运行环境作了规范,提供了一个标准的更加严格的运行环境,这有效的减小了API的分裂并提高了程序的可移植性。JTWI是以一下的规范为基础的
JSR 30 CLDC1.0 提供了基本的语言类库,但是不支持浮点运算。可以用CLDC1.1替代1.0
JSR118 MIDP2.0 提供了图形用户界面、持久性存储、game和多媒体等功能模块的支持
JSR120 WMA1.1 提供了短消息功能的支持
另外MMAPI1.0(JSR135)是JTWI中可选的部分。提供了对多媒体的全面支持,MIDP2.0中的多媒体部分是MMAPI的子集。
JSR185对如下的一些方面进行了规范,实现JTWI的设备必须遵守这些规范
规定了标准应用程序的大小,设备必须支持64K大小的应用程序和5K的JAD文件。持久性存储的大小为30KB,heap空间从MIDP2.0中的128KB提高到256KB
记事功能,这样你可以使用PushRegistry的registerAlarm()方法
JSR185对设备的屏幕尺寸作了建议125*125/12bits。设备必须支持JPEG格式的图片。HTTP1.1必须被支持
JSR185是基于WMA的,因此设备必须具备短消息发送和接受的能力,JSR185还规定,应用程序在准备发送短消息的时候,当提供了TextField和TextBox组件的时候,应该可以给用户弹出本机电话本可以选择
对移动多媒体进行支持,必须实现对MIDI和单音的支持