当前位置: 代码迷 >> 综合 >> MIDP 2.1的新特征
  详细解决方案

MIDP 2.1的新特征

热度:61   发布时间:2024-01-19 21:06:49.0

在经历了N长时间的等待之后,MIDP 2.1终于诞生并应用于实际的机型中,对于MIDP2.0的升级版本,我们没有看到太多的功能推进,而是看到了将MIDP2.0中的许多特性进行了强制化的规定,从而更加的标准性,在兼容MIDP2.0的同时,对于许多组件的规格和性能作出了明确的规定,只是我们最高兴看到的,尤其是对于Image的数个规定,让我们感到欣慰,因为对于不同的厂商,他们的手机对于图片等多媒体能力的支持是相差很大的,比如韩系的手机(三星,LG之流)对于多媒体的支持那不是一般的差,除了外形说的过去以外,我真的不知道韩系手机有什么过人之处,总体而言,韩系手机是标注的“金絮其外,败絮其中”。

目前,支持MIDP 2.1的手机主要是Nokia的,机型是Nokia 5610 XpressMusic、Nokia 5310 XpressMusic、Nokia 6555、Nokia 7500 Prism 、Nokia 7900 Prism、Nokia 6267、Nokia 6500 classic、Nokia 6500 slide 相信这些手机我们都是能看得到的(不是行货就是水货),MIDP标准的统一之路又跨进了一步了,不过,在我看过MIDP3.0之后,我觉得如果说MIDP3.0将来能够以比较快的速度普及的话,那比然是J2ME的又一个春天。

MIDP 2.1 新特性:

1、 一个TextField或一个TextBox的最小尺寸(存储容量)不能少于1000个字符

2、 LCDUI布局指令必须被遵循

3、 LayoutManager.insert()方法的行为必须依照以下的描述:insert(Layer,int)
描述:
       Public void insert(javax.microedition.lcdui.game.Layer l,int index)
       插入一个新的Layer对象到LayoutManager在指定的索引值
描述:
       插入一个已经被添加到这个LayoutManager的Layer对象等于先使用LayoutManager.remove()方法删除它,再用insert()方法添加到特定的索引。在LayoutManager.remove()方法被调用前,抛出IndexOutOfBoundsException的情况被检查
参数:
       Layer l:被插入的Layer对象
       int Index:在被添加的新的Layer对象的索引值

异常抛出:NullPointerException:如果Layer对象为null
       IndexOutOfBoundsException:如果索引值小于0。如果索引值大于已经被添加到LayoutManager中的Layer对象的数量且Layer对象不能被添加到这个LayoutManager中。如果索引值大于已经被添加到LayoutManager中的Layer对象的数量且Layer对象已经被添加到这个LayoutManager中

4、 一个带有item Command对象且表示模式是Item.PLAIN的StringTtem对象必须总是被作为添加了Command对象且表示模式是Item.HYPERLINK的StringTtem对象的方式显示

5、 许多的MIDP LUDUI图像组件能包含文本(换句话说,一个字母数字字符),那被显示给用户。这些组件的例子是List, TextBox , Alert , StringItem ,Form和Item。一个实现常常需要截断这些可见的文本因为不能适合被给的UI组件的指定空间。在这种情况下,一个实现必须使用一个适当的可视化指示(例如一个省略符号)来指示用户,文本被截断。实际的符号或被用来显示截断的文本的符号以来于当前设备选择的区域设置。然而,可视化指示应该和用在设备本地的UI的指示一致。

6、 Canvas的触摸事件必须被支持,如果基础硬件支持这个特色。在这种情况下,Canvas.hasPointerEvents()方法应该总是返回true。

7、 Canvas的触摸拖曳事件必须被支持,如果基础硬件支持这个特色。在这种情况下,Canvas.hasPointerEvents()方法应该总是返回true。

8、 Canvas的重复事件必须被支持。在这种情况下,Canvas.hasRepeatEvents()方法应该总是返回true。

9、 双缓冲图像必须被支持。在这种情况下,Canvas.isDoubleBuffered()方法应该总是返回true。

10、 不同的文本输入模式的可用性(例如:预言输入和仅仅是数字的输入)应该和Java和本地的应用程序相一致。这意味着,例如,如果预言输入文本模式在本地应用程序中可用,那也应该在Java应用程序中可用。

11、 Image对象的创建(不管格式)必须至少支持:尺寸等于(屏幕宽度)乘以(屏幕高度)乘以(以字节为单位的颜色深度)或262144比特(128×128×16比特=32KB),无论哪一个更大。注意,一个Image对象的内在表现应该保持至少每个象素16字节的颜色/透明度数据

12、 每一个包括在字符串值的通过System.getProperty(“microedition.commports”)方法返回的串行端口名字必须可获取通过javax.microedition.io.CommConnection接口

12、 在每个协议,AllowedSender域必须匹配适当的输入事件的地址域。地址域的使用和语法和语意以来于协议。然而,地址和过滤器必须被比较通过精确的字符串匹配,在那里,字符串被一个接着一个字符的比较,字符需要正确地匹配通过两个通配符

13、 以下地网络通信协议必须被支持,提供了以下Java ME接口的实现:javax.microedition.io.SockerConnection , javax.microedition.io.SecureConnection, javax.microedition.io.HttpsConnection

14、 javax.microedition.io.HttpsConnection和javax.microedition.io.SecureConnection必须支持SSLv3协议,其它的,例如TLS,WTLS也许被支持。

15、 应用程序描述符应该包含MIDlet-Permissions

16、 以下的JAD/manifest文件属性被定义来支持指定预期的运行时执行环境:Runtime-Execution-Environment:这是一个可选的属性,指出了应用程序必须的运行时执行环境。这个属性也许有值MIDP.CLDC.如果MIDlet suite不指定属性,隐含的默认值是MIDP.CLDC。当值是MIDP.CLDC,实现的行为必须坚持在以下显示的更多的细节描述。这个属性值的附加值被在将来定义。手机实现必须支持这个属性。当值是MIDP.CLDC,实现的行为必须坚持以下要求:1、支持API和API行为,以及基础虚拟机,必须顺从CLDC1.1规范。2、手机实现也许二选一地使用Java ME的CDC规范。然而,如果CDC被用作基础配置,运行在这个平台顶端的应用程序必须看见一个语义学和功能上等于CLDC1.1平台的环境。CDC特定的API或者CDC特定行为必须不能被暴露给应用程序或应用程序开发者。3、当一个应用程序定义了Runtime-Execution-Environment属性值,应用程序必须也定义一个CLDC平台在MicroEdition-Configuration属性值中。4、如果一个应用程序定义了不被实现支持的Runtime-Execution-Environment属性值或MicroEdition-Configuration属性值,应用程序不能被安装。所有的手机实现必须支持MIDP.CLDC值对于Runtime-Execution-Environment属性。

17、 用户使用OTA下载安装之后,实现必须提示用户是否启动MIDlet

18、 实现必须允许MIDlet创建最小为10个的线程

19、 支持至少512个属性

20、 支持MIDlet suite包含1到5个MIDlet

21、 每个MIDlet suite的RMS至少保证64K的空间,在内存足够的情况下

22、 每个MIDlet suite至少可以创建10个独立记录存储

23、 MIDP的MMAPI的子集必须遵守MMAPI1.1或以后版本

24、 MicroEdition.profiles系统属性不能包含相同profile的不同的版本

25、 Image对象中ISO/IEC JPEG和JFIF被支持

26、 支持载入深度为1、2、4、8、16和32位的PNG格式

27、 TextBox和TextField的约束TextField.EMAILDDR和TextField.URL必须允许相同的字符被输入如同被允许输入在TextField.ANY约束下

28、 适合的设备必须实现基于时间的推注册,如果没有其它的安全机制基于时间的推注册不需要被显式的用户的许可