介紹
MIDP(Mobile Information Device Profile,移動信息設備配置檔案)建立在 CLDC 的基礎之上,用來描述手機和尋呼機這樣更加具體化的的無線移動設備。
對於 Java ME 平台,MIDP 定義了一個標準的 Java API 集合,此集合與聯網的受限設備配置 CLDC 一起提供了一個面向移動信息設備(如行動電話、雙向尋呼機和無線個人電腦記事本)的完整 Java ME 應用程式運行環境。
功能
·顯示工具箱
·用戶輸入方法
·持久性數據存儲(使用簡單的面向記錄的資料庫模型)
·基於 HTTP 1.1 的網路(使用 CLDC 通用連線框架)
Java 規範請求 (Java Specification Request, JSR)-37 中定義了 MIDP 1.0 標準。
JSR-118 中定義了 MIDP 2.0 標準。
MIDP2.1 新特性
在經歷了N長時間的等待之後,MIDP 2.1終於誕生並套用於實際的機型中,對於MIDP2.0的升級版本,我們沒有看到太多的功能推進,而是看到了將MIDP2.0中的許多特性進行了強制化的規定,從而更加的標準性,在兼容MIDP2.0的同時,對於許多組件的規格和性能作出了明確的規定,只是我們最高興看到的,尤其是對於Image的數個規定,讓我們感到欣慰,因為對於不同的廠商,他們的手機對於圖片等多媒體能力的支持是相差很大的,比如韓系的手機(三星,LG之流)對於多媒體的支持那不是一般的差,除了外形說的過去以外,我真的不知道韓系手機有什麼過人之處,總體而言,韓系手機是標註的“金絮其外,敗絮其中”,而且還買的賊TMD貴,坑害廣大的勤勞的中國人們-_-!!!目前,支持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、 適合的設備必須實現基於時間的推註冊,如果沒有其它的安全機制基於時間的推註冊不需要被顯式的用戶的許可