对于 Java ME 平台,MIDP 定义了一个标准的 Java API 集合,此集合与联网的受限设备配置 CLDC 一起提供了一个面向移动信息设备(如移动电话、双向寻呼机和无线个人电脑
记事本)的完整 Java ME
应用程序运行环境。
功能
·显示
工具箱
·用户输入方法
·持久性数据存储(使用简单的面向记录的数据库模型)
·
基于HTTP 1.1 的网络(使用 CLDC 通用连接框架)
MIDP 1.0提供了以下功能:
·显示工具箱
·用户输入方法
·持久性数据存储(使用简单的面向记录的数据库模型)
·基于 HTTP 1.1 的网络(使用 CLDC 通用连接框架)
Java 规范请求 (Java Specification Request, JSR)-37 中定义了 MIDP 1.0 标准。
JSR-118 中定义了 MIDP 2.0 标准。
MIDP 2.0 于 2002 年 11 月正式发布,MIDP 2.0 的推出在一定意义上增强了 Java ME 的功能,主要体现在如下几个方面。
(1)支持操作图像的像素,支持 Alpha 通道。
(2)增强型的
图形用户界面类 CustomItem,提高了高级界面类的表现力。
(3)Media 音频子系统填补了 MIDP 1.0 不支持声音播放的空白。
(4)Push 注册机制和安全模型增强了对 MIDlet 的控制。
(5)游戏开发包提高了游戏开发的效率。
(6)联网能力增强,可以支持 TCP/IP 甚至是 UDP 层的通信。
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、 适合的设备必须实现基于时间的推注册,如果没有其它的安全机制基于时间的推注册不需要被显式的用户的许可