JAVA ME 中MIDP1.0与MIDP2.0的区别? Java MIDP2.1和JAVA MIDP2.0的本质区别...

Java MIDP 2.1\u548cJAVA MIDP 2.0\u6709\u4ec0\u4e48\u533a\u522b\uff1f

MIDP 2.1 \u65b0\u7279\u6027

\u5728\u7ecf\u5386\u4e86N\u957f\u65f6\u95f4\u7684\u7b49\u5f85\u4e4b\u540e\uff0cMIDP 2.1\u7ec8\u4e8e\u8bde\u751f\u5e76\u5e94\u7528\u4e8e\u5b9e\u9645\u7684\u673a\u578b\u4e2d\uff0c\u5bf9\u4e8eMIDP2.0\u7684\u5347\u7ea7\u7248\u672c\uff0c\u6211\u4eec\u6ca1\u6709\u770b\u5230\u592a\u591a\u7684\u529f\u80fd\u63a8\u8fdb\uff0c\u800c\u662f\u770b\u5230\u4e86\u5c06MIDP2.0\u4e2d\u7684\u8bb8\u591a\u7279\u6027\u8fdb\u884c\u4e86\u5f3a\u5236\u5316\u7684\u89c4\u5b9a\uff0c\u4ece\u800c\u66f4\u52a0\u7684\u6807\u51c6\u6027\uff0c\u5728\u517c\u5bb9MIDP2.0\u7684\u540c\u65f6\uff0c\u5bf9\u4e8e\u8bb8\u591a\u7ec4\u4ef6\u7684\u89c4\u683c\u548c\u6027\u80fd\u4f5c\u51fa\u4e86\u660e\u786e\u7684\u89c4\u5b9a\uff0c\u53ea\u662f\u6211\u4eec\u6700\u9ad8\u5174\u770b\u5230\u7684\uff0c\u5c24\u5176\u662f\u5bf9\u4e8eImage\u7684\u6570\u4e2a\u89c4\u5b9a\uff0c\u8ba9\u6211\u4eec\u611f\u5230\u6b23\u6170\uff0c\u56e0\u4e3a\u5bf9\u4e8e\u4e0d\u540c\u7684\u5382\u5546\uff0c\u4ed6\u4eec\u7684\u624b\u673a\u5bf9\u4e8e\u56fe\u7247\u7b49\u591a\u5a92\u4f53\u80fd\u529b\u7684\u652f\u6301\u662f\u76f8\u5dee\u5f88\u5927\u7684\uff0c\u6bd4\u5982\u97e9\u7cfb\u7684\u624b\u673a\uff08\u4e09\u661f\uff0cLG\u4e4b\u6d41\uff09\u5bf9\u4e8e\u591a\u5a92\u4f53\u7684\u652f\u6301\u90a3\u4e0d\u662f\u4e00\u822c\u7684\u5dee\uff0c\u9664\u4e86\u5916\u5f62\u8bf4\u7684\u8fc7\u53bb\u4ee5\u5916\uff0c\u6211\u771f\u7684\u4e0d\u77e5\u9053\u97e9\u7cfb\u624b\u673a\u6709\u4ec0\u4e48\u8fc7\u4eba\u4e4b\u5904\uff0c\u603b\u4f53\u800c\u8a00\uff0c\u97e9\u7cfb\u624b\u673a\u662f\u6807\u6ce8\u7684\u201c\u91d1\u7d6e\u5176\u5916\uff0c\u8d25\u7d6e\u5176\u4e2d\u201d\uff0c\u800c\u4e14\u8fd8\u4e70\u7684\u8d3cTMD\u8d35\uff0c\u5751\u5bb3\u5e7f\u5927\u7684\u52e4\u52b3\u7684\u4e2d\u56fd\u4eba\u4eec-_-!!!

\u76ee\u524d\uff0c\u652f\u6301MIDP 2.1\u7684\u624b\u673a\u4e3b\u8981\u662fNokia\u7684\uff08\u4e0d\u6127\u662f\u8001\u5927\u7ea7\u7684\u4eba\u7269\u554a\uff5e\uff09\uff0c\u673a\u578b\u662fNokia 5610 XpressMusic\u3001Nokia 5310 XpressMusic\u3001Nokia 6555\u3001Nokia 7500 Prism \u3001Nokia 7900 Prism\u3001Nokia 6267\u3001Nokia 6500 classic\u3001Nokia 6500 slide \u76f8\u4fe1\u8fd9\u4e9b\u624b\u673a\u6211\u4eec\u90fd\u662f\u80fd\u770b\u5f97\u5230\u7684\uff08\u4e0d\u662f\u884c\u8d27\u5c31\u662f\u6c34\u8d27\uff09\uff0cMIDP\u6807\u51c6\u7684\u7edf\u4e00\u4e4b\u8def\u53c8\u8de8\u8fdb\u4e86\u4e00\u6b65\u4e86\uff0c\u4e0d\u8fc7\uff0c\u5728\u6211\u770b\u8fc7MIDP3.0\u4e4b\u540e\uff0c\u6211\u89c9\u5f97\u5982\u679c\u8bf4MIDP3.0\u5c06\u6765\u80fd\u591f\u4ee5\u6bd4\u8f83\u5feb\u7684\u901f\u5ea6\u666e\u53ca\u7684\u8bdd\uff0c\u90a3\u6bd4\u7136\u662fJ2ME\u7684\u53c8\u4e00\u4e2a\u6625\u5929\u3002

MIDP 2.1 \u65b0\u7279\u6027\uff1a

1\u3001 \u4e00\u4e2aTextField\u6216\u4e00\u4e2aTextBox\u7684\u6700\u5c0f\u5c3a\u5bf8\uff08\u5b58\u50a8\u5bb9\u91cf\uff09\u4e0d\u80fd\u5c11\u4e8e1000\u4e2a\u5b57\u7b26

2\u3001 LCDUI\u5e03\u5c40\u6307\u4ee4\u5fc5\u987b\u88ab\u9075\u5faa

3\u3001 LayoutManager.insert()\u65b9\u6cd5\u7684\u884c\u4e3a\u5fc5\u987b\u4f9d\u7167\u4ee5\u4e0b\u7684\u63cf\u8ff0\uff1ainsert(Layer,int)
\u63cf\u8ff0\uff1a
Public void insert(javax.microedition.lcdui.game.Layer l,int index)
\u63d2\u5165\u4e00\u4e2a\u65b0\u7684Layer\u5bf9\u8c61\u5230LayoutManager\u5728\u6307\u5b9a\u7684\u7d22\u5f15\u503c
\u63cf\u8ff0\uff1a
\u63d2\u5165\u4e00\u4e2a\u5df2\u7ecf\u88ab\u6dfb\u52a0\u5230\u8fd9\u4e2aLayoutManager\u7684Layer\u5bf9\u8c61\u7b49\u4e8e\u5148\u4f7f\u7528LayoutManager.remove()\u65b9\u6cd5\u5220\u9664\u5b83\uff0c\u518d\u7528insert()\u65b9\u6cd5\u6dfb\u52a0\u5230\u7279\u5b9a\u7684\u7d22\u5f15\u3002\u5728LayoutManager.remove()\u65b9\u6cd5\u88ab\u8c03\u7528\u524d\uff0c\u629b\u51faIndexOutOfBoundsException\u7684\u60c5\u51b5\u88ab\u68c0\u67e5
\u53c2\u6570\uff1a
Layer l\uff1a\u88ab\u63d2\u5165\u7684Layer\u5bf9\u8c61
int Index\uff1a\u5728\u88ab\u6dfb\u52a0\u7684\u65b0\u7684Layer\u5bf9\u8c61\u7684\u7d22\u5f15\u503c

\u5f02\u5e38\u629b\u51fa\uff1aNullPointerException\uff1a\u5982\u679cLayer\u5bf9\u8c61\u4e3anull
IndexOutOfBoundsException\uff1a\u5982\u679c\u7d22\u5f15\u503c\u5c0f\u4e8e0\u3002\u5982\u679c\u7d22\u5f15\u503c\u5927\u4e8e\u5df2\u7ecf\u88ab\u6dfb\u52a0\u5230LayoutManager\u4e2d\u7684Layer\u5bf9\u8c61\u7684\u6570\u91cf\u4e14Layer\u5bf9\u8c61\u4e0d\u80fd\u88ab\u6dfb\u52a0\u5230\u8fd9\u4e2aLayoutManager\u4e2d\u3002\u5982\u679c\u7d22\u5f15\u503c\u5927\u4e8e\u5df2\u7ecf\u88ab\u6dfb\u52a0\u5230LayoutManager\u4e2d\u7684Layer\u5bf9\u8c61\u7684\u6570\u91cf\u4e14Layer\u5bf9\u8c61\u5df2\u7ecf\u88ab\u6dfb\u52a0\u5230\u8fd9\u4e2aLayoutManager\u4e2d

4\u3001 \u4e00\u4e2a\u5e26\u6709item Command\u5bf9\u8c61\u4e14\u8868\u793a\u6a21\u5f0f\u662fItem.PLAIN\u7684StringTtem\u5bf9\u8c61\u5fc5\u987b\u603b\u662f\u88ab\u4f5c\u4e3a\u6dfb\u52a0\u4e86Command\u5bf9\u8c61\u4e14\u8868\u793a\u6a21\u5f0f\u662fItem.HYPERLINK\u7684StringTtem\u5bf9\u8c61\u7684\u65b9\u5f0f\u663e\u793a

5\u3001 \u8bb8\u591a\u7684MIDP LUDUI\u56fe\u50cf\u7ec4\u4ef6\u80fd\u5305\u542b\u6587\u672c\uff08\u6362\u53e5\u8bdd\u8bf4\uff0c\u4e00\u4e2a\u5b57\u6bcd\u6570\u5b57\u5b57\u7b26\uff09\uff0c\u90a3\u88ab\u663e\u793a\u7ed9\u7528\u6237\u3002\u8fd9\u4e9b\u7ec4\u4ef6\u7684\u4f8b\u5b50\u662fList, TextBox , Alert , StringItem ,Form\u548cItem\u3002\u4e00\u4e2a\u5b9e\u73b0\u5e38\u5e38\u9700\u8981\u622a\u65ad\u8fd9\u4e9b\u53ef\u89c1\u7684\u6587\u672c\u56e0\u4e3a\u4e0d\u80fd\u9002\u5408\u88ab\u7ed9\u7684UI\u7ec4\u4ef6\u7684\u6307\u5b9a\u7a7a\u95f4\u3002\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c\u4e00\u4e2a\u5b9e\u73b0\u5fc5\u987b\u4f7f\u7528\u4e00\u4e2a\u9002\u5f53\u7684\u53ef\u89c6\u5316\u6307\u793a\uff08\u4f8b\u5982\u4e00\u4e2a\u7701\u7565\u7b26\u53f7\uff09\u6765\u6307\u793a\u7528\u6237\uff0c\u6587\u672c\u88ab\u622a\u65ad\u3002\u5b9e\u9645\u7684\u7b26\u53f7\u6216\u88ab\u7528\u6765\u663e\u793a\u622a\u65ad\u7684\u6587\u672c\u7684\u7b26\u53f7\u4ee5\u6765\u4e8e\u5f53\u524d\u8bbe\u5907\u9009\u62e9\u7684\u533a\u57df\u8bbe\u7f6e\u3002\u7136\u800c\uff0c\u53ef\u89c6\u5316\u6307\u793a\u5e94\u8be5\u548c\u7528\u5728\u8bbe\u5907\u672c\u5730\u7684UI\u7684\u6307\u793a\u4e00\u81f4\u3002

6\u3001 Canvas\u7684\u89e6\u6478\u4e8b\u4ef6\u5fc5\u987b\u88ab\u652f\u6301\uff0c\u5982\u679c\u57fa\u7840\u786c\u4ef6\u652f\u6301\u8fd9\u4e2a\u7279\u8272\u3002\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0cCanvas.hasPointerEvents()\u65b9\u6cd5\u5e94\u8be5\u603b\u662f\u8fd4\u56detrue\u3002

7\u3001 Canvas\u7684\u89e6\u6478\u62d6\u66f3\u4e8b\u4ef6\u5fc5\u987b\u88ab\u652f\u6301\uff0c\u5982\u679c\u57fa\u7840\u786c\u4ef6\u652f\u6301\u8fd9\u4e2a\u7279\u8272\u3002\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0cCanvas.hasPointerEvents()\u65b9\u6cd5\u5e94\u8be5\u603b\u662f\u8fd4\u56detrue\u3002

8\u3001 Canvas\u7684\u91cd\u590d\u4e8b\u4ef6\u5fc5\u987b\u88ab\u652f\u6301\u3002\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0cCanvas.hasRepeatEvents()\u65b9\u6cd5\u5e94\u8be5\u603b\u662f\u8fd4\u56detrue\u3002

9\u3001 \u53cc\u7f13\u51b2\u56fe\u50cf\u5fc5\u987b\u88ab\u652f\u6301\u3002\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0cCanvas.isDoubleBuffered()\u65b9\u6cd5\u5e94\u8be5\u603b\u662f\u8fd4\u56detrue\u3002

10\u3001 \u4e0d\u540c\u7684\u6587\u672c\u8f93\u5165\u6a21\u5f0f\u7684\u53ef\u7528\u6027\uff08\u4f8b\u5982\uff1a\u9884\u8a00\u8f93\u5165\u548c\u4ec5\u4ec5\u662f\u6570\u5b57\u7684\u8f93\u5165\uff09\u5e94\u8be5\u548cJava\u548c\u672c\u5730\u7684\u5e94\u7528\u7a0b\u5e8f\u76f8\u4e00\u81f4\u3002\u8fd9\u610f\u5473\u7740\uff0c\u4f8b\u5982\uff0c\u5982\u679c\u9884\u8a00\u8f93\u5165\u6587\u672c\u6a21\u5f0f\u5728\u672c\u5730\u5e94\u7528\u7a0b\u5e8f\u4e2d\u53ef\u7528\uff0c\u90a3\u4e5f\u5e94\u8be5\u5728Java\u5e94\u7528\u7a0b\u5e8f\u4e2d\u53ef\u7528\u3002

11\u3001 Image\u5bf9\u8c61\u7684\u521b\u5efa\uff08\u4e0d\u7ba1\u683c\u5f0f\uff09\u5fc5\u987b\u81f3\u5c11\u652f\u6301\uff1a\u5c3a\u5bf8\u7b49\u4e8e\uff08\u5c4f\u5e55\u5bbd\u5ea6\uff09\u4e58\u4ee5\uff08\u5c4f\u5e55\u9ad8\u5ea6\uff09\u4e58\u4ee5\uff08\u4ee5\u5b57\u8282\u4e3a\u5355\u4f4d\u7684\u989c\u8272\u6df1\u5ea6\uff09\u6216262144\u6bd4\u7279\uff08128\u00d7128\u00d716\u6bd4\u7279\uff1d32KB\uff09\uff0c\u65e0\u8bba\u54ea\u4e00\u4e2a\u66f4\u5927\u3002\u6ce8\u610f\uff0c\u4e00\u4e2aImage\u5bf9\u8c61\u7684\u5185\u5728\u8868\u73b0\u5e94\u8be5\u4fdd\u6301\u81f3\u5c11\u6bcf\u4e2a\u8c61\u7d2016\u5b57\u8282\u7684\u989c\u8272/\u900f\u660e\u5ea6\u6570\u636e

12\u3001 \u6bcf\u4e00\u4e2a\u5305\u62ec\u5728\u5b57\u7b26\u4e32\u503c\u7684\u901a\u8fc7System.getProperty(\u201cmicroedition.commports\u201d)\u65b9\u6cd5\u8fd4\u56de\u7684\u4e32\u884c\u7aef\u53e3\u540d\u5b57\u5fc5\u987b\u53ef\u83b7\u53d6\u901a\u8fc7javax.microedition.io.CommConnection\u63a5\u53e3

12\u3001 \u5728\u6bcf\u4e2a\u534f\u8bae\uff0cAllowedSender\u57df\u5fc5\u987b\u5339\u914d\u9002\u5f53\u7684\u8f93\u5165\u4e8b\u4ef6\u7684\u5730\u5740\u57df\u3002\u5730\u5740\u57df\u7684\u4f7f\u7528\u548c\u8bed\u6cd5\u548c\u8bed\u610f\u4ee5\u6765\u4e8e\u534f\u8bae\u3002\u7136\u800c\uff0c\u5730\u5740\u548c\u8fc7\u6ee4\u5668\u5fc5\u987b\u88ab\u6bd4\u8f83\u901a\u8fc7\u7cbe\u786e\u7684\u5b57\u7b26\u4e32\u5339\u914d\uff0c\u5728\u90a3\u91cc\uff0c\u5b57\u7b26\u4e32\u88ab\u4e00\u4e2a\u63a5\u7740\u4e00\u4e2a\u5b57\u7b26\u7684\u6bd4\u8f83\uff0c\u5b57\u7b26\u9700\u8981\u6b63\u786e\u5730\u5339\u914d\u901a\u8fc7\u4e24\u4e2a\u901a\u914d\u7b26

13\u3001 \u4ee5\u4e0b\u5730\u7f51\u7edc\u901a\u4fe1\u534f\u8bae\u5fc5\u987b\u88ab\u652f\u6301\uff0c\u63d0\u4f9b\u4e86\u4ee5\u4e0bJava ME\u63a5\u53e3\u7684\u5b9e\u73b0\uff1ajavax.microedition.io.SockerConnection , javax.microedition.io.SecureConnection, javax.microedition.io.HttpsConnection

14\u3001 javax.microedition.io.HttpsConnection\u548cjavax.microedition.io.SecureConnection\u5fc5\u987b\u652f\u6301SSLv3\u534f\u8bae\uff0c\u5176\u5b83\u7684\uff0c\u4f8b\u5982TLS,WTLS\u4e5f\u8bb8\u88ab\u652f\u6301\u3002

15\u3001 \u5e94\u7528\u7a0b\u5e8f\u63cf\u8ff0\u7b26\u5e94\u8be5\u5305\u542bMIDlet-Permissions

16\u3001 \u4ee5\u4e0b\u7684JAD/manifest\u6587\u4ef6\u5c5e\u6027\u88ab\u5b9a\u4e49\u6765\u652f\u6301\u6307\u5b9a\u9884\u671f\u7684\u8fd0\u884c\u65f6\u6267\u884c\u73af\u5883\uff1aRuntime-Execution-Environment\uff1a\u8fd9\u662f\u4e00\u4e2a\u53ef\u9009\u7684\u5c5e\u6027\uff0c\u6307\u51fa\u4e86\u5e94\u7528\u7a0b\u5e8f\u5fc5\u987b\u7684\u8fd0\u884c\u65f6\u6267\u884c\u73af\u5883\u3002\u8fd9\u4e2a\u5c5e\u6027\u4e5f\u8bb8\u6709\u503cMIDP.CLDC.\u5982\u679cMIDlet suite\u4e0d\u6307\u5b9a\u5c5e\u6027\uff0c\u9690\u542b\u7684\u9ed8\u8ba4\u503c\u662fMIDP.CLDC\u3002\u5f53\u503c\u662fMIDP.CLDC\uff0c\u5b9e\u73b0\u7684\u884c\u4e3a\u5fc5\u987b\u575a\u6301\u5728\u4ee5\u4e0b\u663e\u793a\u7684\u66f4\u591a\u7684\u7ec6\u8282\u63cf\u8ff0\u3002\u8fd9\u4e2a\u5c5e\u6027\u503c\u7684\u9644\u52a0\u503c\u88ab\u5728\u5c06\u6765\u5b9a\u4e49\u3002\u624b\u673a\u5b9e\u73b0\u5fc5\u987b\u652f\u6301\u8fd9\u4e2a\u5c5e\u6027\u3002\u5f53\u503c\u662fMIDP.CLDC\uff0c\u5b9e\u73b0\u7684\u884c\u4e3a\u5fc5\u987b\u575a\u6301\u4ee5\u4e0b\u8981\u6c42\uff1a1\u3001\u652f\u6301API\u548cAPI\u884c\u4e3a\uff0c\u4ee5\u53ca\u57fa\u7840\u865a\u62df\u673a\uff0c\u5fc5\u987b\u987a\u4eceCLDC1.1\u89c4\u8303\u30022\u3001\u624b\u673a\u5b9e\u73b0\u4e5f\u8bb8\u4e8c\u9009\u4e00\u5730\u4f7f\u7528Java ME\u7684CDC\u89c4\u8303\u3002\u7136\u800c\uff0c\u5982\u679cCDC\u88ab\u7528\u4f5c\u57fa\u7840\u914d\u7f6e\uff0c\u8fd0\u884c\u5728\u8fd9\u4e2a\u5e73\u53f0\u9876\u7aef\u7684\u5e94\u7528\u7a0b\u5e8f\u5fc5\u987b\u770b\u89c1\u4e00\u4e2a\u8bed\u4e49\u5b66\u548c\u529f\u80fd\u4e0a\u7b49\u4e8eCLDC1.1\u5e73\u53f0\u7684\u73af\u5883\u3002CDC\u7279\u5b9a\u7684API\u6216\u8005CDC\u7279\u5b9a\u884c\u4e3a\u5fc5\u987b\u4e0d\u80fd\u88ab\u66b4\u9732\u7ed9\u5e94\u7528\u7a0b\u5e8f\u6216\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u8005\u30023\u3001\u5f53\u4e00\u4e2a\u5e94\u7528\u7a0b\u5e8f\u5b9a\u4e49\u4e86Runtime-Execution-Environment\u5c5e\u6027\u503c\uff0c\u5e94\u7528\u7a0b\u5e8f\u5fc5\u987b\u4e5f\u5b9a\u4e49\u4e00\u4e2aCLDC\u5e73\u53f0\u5728MicroEdition-Configuration\u5c5e\u6027\u503c\u4e2d\u30024\u3001\u5982\u679c\u4e00\u4e2a\u5e94\u7528\u7a0b\u5e8f\u5b9a\u4e49\u4e86\u4e0d\u88ab\u5b9e\u73b0\u652f\u6301\u7684Runtime-Execution-Environment\u5c5e\u6027\u503c\u6216MicroEdition-Configuration\u5c5e\u6027\u503c\uff0c\u5e94\u7528\u7a0b\u5e8f\u4e0d\u80fd\u88ab\u5b89\u88c5\u3002\u6240\u6709\u7684\u624b\u673a\u5b9e\u73b0\u5fc5\u987b\u652f\u6301MIDP.CLDC\u503c\u5bf9\u4e8eRuntime-Execution-Environment\u5c5e\u6027\u3002

17\u3001 \u7528\u6237\u4f7f\u7528OTA\u4e0b\u8f7d\u5b89\u88c5\u4e4b\u540e\uff0c\u5b9e\u73b0\u5fc5\u987b\u63d0\u793a\u7528\u6237\u662f\u5426\u542f\u52a8MIDlet

18\u3001 \u5b9e\u73b0\u5fc5\u987b\u5141\u8bb8MIDlet\u521b\u5efa\u6700\u5c0f\u4e3a10\u4e2a\u7684\u7ebf\u7a0b

19\u3001 \u652f\u6301\u81f3\u5c11512\u4e2a\u5c5e\u6027

20\u3001 \u652f\u6301MIDlet suite\u5305\u542b1\u52305\u4e2aMIDlet

21\u3001 \u6bcf\u4e2aMIDlet suite\u7684RMS\u81f3\u5c11\u4fdd\u8bc164K\u7684\u7a7a\u95f4\uff0c\u5728\u5185\u5b58\u8db3\u591f\u7684\u60c5\u51b5\u4e0b

22\u3001 \u6bcf\u4e2aMIDlet suite\u81f3\u5c11\u53ef\u4ee5\u521b\u5efa10\u4e2a\u72ec\u7acb\u8bb0\u5f55\u5b58\u50a8

23\u3001 MIDP\u7684MMAPI\u7684\u5b50\u96c6\u5fc5\u987b\u9075\u5b88MMAPI1.1\u6216\u4ee5\u540e\u7248\u672c

24\u3001 MicroEdition.profiles\u7cfb\u7edf\u5c5e\u6027\u4e0d\u80fd\u5305\u542b\u76f8\u540cprofile\u7684\u4e0d\u540c\u7684\u7248\u672c

25\u3001 Image\u5bf9\u8c61\u4e2dISO/IEC JPEG\u548cJFIF\u88ab\u652f\u6301

26\u3001 \u652f\u6301\u8f7d\u5165\u6df1\u5ea6\u4e3a1\u30012\u30014\u30018\u300116\u548c32\u4f4d\u7684PNG\u683c\u5f0f

27\u3001 TextBox\u548cTextField\u7684\u7ea6\u675fTextField.EMAILDDR\u548cTextField.URL\u5fc5\u987b\u5141\u8bb8\u76f8\u540c\u7684\u5b57\u7b26\u88ab\u8f93\u5165\u5982\u540c\u88ab\u5141\u8bb8\u8f93\u5165\u5728TextField.ANY\u7ea6\u675f\u4e0b

28\u3001 \u9002\u5408\u7684\u8bbe\u5907\u5fc5\u987b\u5b9e\u73b0\u57fa\u4e8e\u65f6\u95f4\u7684\u63a8\u6ce8\u518c\uff0c\u5982\u679c\u6ca1\u6709\u5176\u5b83\u7684\u5b89\u5168\u673a\u5236\u57fa\u4e8e\u65f6\u95f4\u7684\u63a8\u6ce8\u518c\u4e0d\u9700\u8981\u88ab\u663e\u5f0f\u7684\u7528\u6237\u7684\u8bb8\u53ef

MIDP 2.1 \u65b0\u7279\u6027

\u5728\u7ecf\u5386\u4e86N\u957f\u65f6\u95f4\u7684\u7b49\u5f85\u4e4b\u540e\uff0cMIDP 2.1\u7ec8\u4e8e\u8bde\u751f\u5e76\u5e94\u7528\u4e8e\u5b9e\u9645\u7684\u673a\u578b\u4e2d\uff0c\u5bf9\u4e8eMIDP2.0\u7684\u5347\u7ea7\u7248\u672c\uff0c\u6211\u4eec\u6ca1\u6709\u770b\u5230\u592a\u591a\u7684\u529f\u80fd\u63a8\u8fdb\uff0c\u800c\u662f\u770b\u5230\u4e86\u5c06MIDP2.0\u4e2d\u7684\u8bb8\u591a\u7279\u6027\u8fdb\u884c\u4e86\u5f3a\u5236\u5316\u7684\u89c4\u5b9a\uff0c\u4ece\u800c\u66f4\u52a0\u7684\u6807\u51c6\u6027\uff0c\u5728\u517c\u5bb9MIDP2.0\u7684\u540c\u65f6\uff0c\u5bf9\u4e8e\u8bb8\u591a\u7ec4\u4ef6\u7684\u89c4\u683c\u548c\u6027\u80fd\u4f5c\u51fa\u4e86\u660e\u786e\u7684\u89c4\u5b9a\uff0c\u53ea\u662f\u6211\u4eec\u6700\u9ad8\u5174\u770b\u5230\u7684\uff0c\u5c24\u5176\u662f\u5bf9\u4e8eImage\u7684\u6570\u4e2a\u89c4\u5b9a\uff0c\u8ba9\u6211\u4eec\u611f\u5230\u6b23\u6170\uff0c\u56e0\u4e3a\u5bf9\u4e8e\u4e0d\u540c\u7684\u5382\u5546\uff0c\u4ed6\u4eec\u7684\u624b\u673a\u5bf9\u4e8e\u56fe\u7247\u7b49\u591a\u5a92\u4f53\u80fd\u529b\u7684\u652f\u6301\u662f\u76f8\u5dee\u5f88\u5927\u7684\uff0c\u6bd4\u5982\u97e9\u7cfb\u7684\u624b\u673a\uff08\u4e09\u661f\uff0cLG\u4e4b\u6d41\uff09\u5bf9\u4e8e\u591a\u5a92\u4f53\u7684\u652f\u6301\u90a3\u4e0d\u662f\u4e00\u822c\u7684\u5dee\uff0c\u9664\u4e86\u5916\u5f62\u8bf4\u7684\u8fc7\u53bb\u4ee5\u5916\uff0c\u6211\u771f\u7684\u4e0d\u77e5\u9053\u97e9\u7cfb\u624b\u673a\u6709\u4ec0\u4e48\u8fc7\u4eba\u4e4b\u5904\uff0c\u603b\u4f53\u800c\u8a00\uff0c\u97e9\u7cfb\u624b\u673a\u662f\u6807\u6ce8\u7684\u201c\u91d1\u7d6e\u5176\u5916\uff0c\u8d25\u7d6e\u5176\u4e2d\u201d\uff0c\u800c\u4e14\u8fd8\u4e70\u7684\u8d3cTMD\u8d35\uff0c\u5751\u5bb3\u5e7f\u5927\u7684\u52e4\u52b3\u7684\u4e2d\u56fd\u4eba\u4eec-_-!!!

\u76ee\u524d\uff0c\u652f\u6301MIDP 2.1\u7684\u624b\u673a\u4e3b\u8981\u662fNokia\u7684\uff08\u4e0d\u6127\u662f\u8001\u5927\u7ea7\u7684\u4eba\u7269\u554a\uff5e\uff09\uff0c\u673a\u578b\u662fNokia 5610 XpressMusic\u3001Nokia 5310 XpressMusic\u3001Nokia 6555\u3001Nokia 7500 Prism \u3001Nokia 7900 Prism\u3001Nokia 6267\u3001Nokia 6500 classic\u3001Nokia 6500 slide \u76f8\u4fe1\u8fd9\u4e9b\u624b\u673a\u6211\u4eec\u90fd\u662f\u80fd\u770b\u5f97\u5230\u7684\uff08\u4e0d\u662f\u884c\u8d27\u5c31\u662f\u6c34\u8d27\uff09\uff0cMIDP\u6807\u51c6\u7684\u7edf\u4e00\u4e4b\u8def\u53c8\u8de8\u8fdb\u4e86\u4e00\u6b65\u4e86\uff0c\u4e0d\u8fc7\uff0c\u5728\u6211\u770b\u8fc7MIDP3.0\u4e4b\u540e\uff0c\u6211\u89c9\u5f97\u5982\u679c\u8bf4MIDP3.0\u5c06\u6765\u80fd\u591f\u4ee5\u6bd4\u8f83\u5feb\u7684\u901f\u5ea6\u666e\u53ca\u7684\u8bdd\uff0c\u90a3\u6bd4\u7136\u662fJ2ME\u7684\u53c8\u4e00\u4e2a\u6625\u5929\u3002

MIDP 2.1 \u65b0\u7279\u6027\uff1a

1\u3001 \u4e00\u4e2aTextField\u6216\u4e00\u4e2aTextBox\u7684\u6700\u5c0f\u5c3a\u5bf8\uff08\u5b58\u50a8\u5bb9\u91cf\uff09\u4e0d\u80fd\u5c11\u4e8e1000\u4e2a\u5b57\u7b26

2\u3001 LCDUI\u5e03\u5c40\u6307\u4ee4\u5fc5\u987b\u88ab\u9075\u5faa

3\u3001 LayoutManager.insert()\u65b9\u6cd5\u7684\u884c\u4e3a\u5fc5\u987b\u4f9d\u7167\u4ee5\u4e0b\u7684\u63cf\u8ff0\uff1ainsert(Layer,int)
\u63cf\u8ff0\uff1a
Public void insert(javax.microedition.lcdui.game.Layer l,int index)
\u63d2\u5165\u4e00\u4e2a\u65b0\u7684Layer\u5bf9\u8c61\u5230LayoutManager\u5728\u6307\u5b9a\u7684\u7d22\u5f15\u503c
\u63cf\u8ff0\uff1a
\u63d2\u5165\u4e00\u4e2a\u5df2\u7ecf\u88ab\u6dfb\u52a0\u5230\u8fd9\u4e2aLayoutManager\u7684Layer\u5bf9\u8c61\u7b49\u4e8e\u5148\u4f7f\u7528LayoutManager.remove()\u65b9\u6cd5\u5220\u9664\u5b83\uff0c\u518d\u7528insert()\u65b9\u6cd5\u6dfb\u52a0\u5230\u7279\u5b9a\u7684\u7d22\u5f15\u3002\u5728LayoutManager.remove()\u65b9\u6cd5\u88ab\u8c03\u7528\u524d\uff0c\u629b\u51faIndexOutOfBoundsException\u7684\u60c5\u51b5\u88ab\u68c0\u67e5
\u53c2\u6570\uff1a
Layer l\uff1a\u88ab\u63d2\u5165\u7684Layer\u5bf9\u8c61
int Index\uff1a\u5728\u88ab\u6dfb\u52a0\u7684\u65b0\u7684Layer\u5bf9\u8c61\u7684\u7d22\u5f15\u503c

\u5f02\u5e38\u629b\u51fa\uff1aNullPointerException\uff1a\u5982\u679cLayer\u5bf9\u8c61\u4e3anull
IndexOutOfBoundsException\uff1a\u5982\u679c\u7d22\u5f15\u503c\u5c0f\u4e8e0\u3002\u5982\u679c\u7d22\u5f15\u503c\u5927\u4e8e\u5df2\u7ecf\u88ab\u6dfb\u52a0\u5230LayoutManager\u4e2d\u7684Layer\u5bf9\u8c61\u7684\u6570\u91cf\u4e14Layer\u5bf9\u8c61\u4e0d\u80fd\u88ab\u6dfb\u52a0\u5230\u8fd9\u4e2aLayoutManager\u4e2d\u3002\u5982\u679c\u7d22\u5f15\u503c\u5927\u4e8e\u5df2\u7ecf\u88ab\u6dfb\u52a0\u5230LayoutManager\u4e2d\u7684Layer\u5bf9\u8c61\u7684\u6570\u91cf\u4e14Layer\u5bf9\u8c61\u5df2\u7ecf\u88ab\u6dfb\u52a0\u5230\u8fd9\u4e2aLayoutManager\u4e2d

4\u3001 \u4e00\u4e2a\u5e26\u6709item Command\u5bf9\u8c61\u4e14\u8868\u793a\u6a21\u5f0f\u662fItem.PLAIN\u7684StringTtem\u5bf9\u8c61\u5fc5\u987b\u603b\u662f\u88ab\u4f5c\u4e3a\u6dfb\u52a0\u4e86Command\u5bf9\u8c61\u4e14\u8868\u793a\u6a21\u5f0f\u662fItem.HYPERLINK\u7684StringTtem\u5bf9\u8c61\u7684\u65b9\u5f0f\u663e\u793a

5\u3001 \u8bb8\u591a\u7684MIDP LUDUI\u56fe\u50cf\u7ec4\u4ef6\u80fd\u5305\u542b\u6587\u672c\uff08\u6362\u53e5\u8bdd\u8bf4\uff0c\u4e00\u4e2a\u5b57\u6bcd\u6570\u5b57\u5b57\u7b26\uff09\uff0c\u90a3\u88ab\u663e\u793a\u7ed9\u7528\u6237\u3002\u8fd9\u4e9b\u7ec4\u4ef6\u7684\u4f8b\u5b50\u662fList, TextBox , Alert , StringItem ,Form\u548cItem\u3002\u4e00\u4e2a\u5b9e\u73b0\u5e38\u5e38\u9700\u8981\u622a\u65ad\u8fd9\u4e9b\u53ef\u89c1\u7684\u6587\u672c\u56e0\u4e3a\u4e0d\u80fd\u9002\u5408\u88ab\u7ed9\u7684UI\u7ec4\u4ef6\u7684\u6307\u5b9a\u7a7a\u95f4\u3002\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c\u4e00\u4e2a\u5b9e\u73b0\u5fc5\u987b\u4f7f\u7528\u4e00\u4e2a\u9002\u5f53\u7684\u53ef\u89c6\u5316\u6307\u793a\uff08\u4f8b\u5982\u4e00\u4e2a\u7701\u7565\u7b26\u53f7\uff09\u6765\u6307\u793a\u7528\u6237\uff0c\u6587\u672c\u88ab\u622a\u65ad\u3002\u5b9e\u9645\u7684\u7b26\u53f7\u6216\u88ab\u7528\u6765\u663e\u793a\u622a\u65ad\u7684\u6587\u672c\u7684\u7b26\u53f7\u4ee5\u6765\u4e8e\u5f53\u524d\u8bbe\u5907\u9009\u62e9\u7684\u533a\u57df\u8bbe\u7f6e\u3002\u7136\u800c\uff0c\u53ef\u89c6\u5316\u6307\u793a\u5e94\u8be5\u548c\u7528\u5728\u8bbe\u5907\u672c\u5730\u7684UI\u7684\u6307\u793a\u4e00\u81f4\u3002

6\u3001 Canvas\u7684\u89e6\u6478\u4e8b\u4ef6\u5fc5\u987b\u88ab\u652f\u6301\uff0c\u5982\u679c\u57fa\u7840\u786c\u4ef6\u652f\u6301\u8fd9\u4e2a\u7279\u8272\u3002\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0cCanvas.hasPointerEvents()\u65b9\u6cd5\u5e94\u8be5\u603b\u662f\u8fd4\u56detrue\u3002

7\u3001 Canvas\u7684\u89e6\u6478\u62d6\u66f3\u4e8b\u4ef6\u5fc5\u987b\u88ab\u652f\u6301\uff0c\u5982\u679c\u57fa\u7840\u786c\u4ef6\u652f\u6301\u8fd9\u4e2a\u7279\u8272\u3002\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0cCanvas.hasPointerEvents()\u65b9\u6cd5\u5e94\u8be5\u603b\u662f\u8fd4\u56detrue\u3002

8\u3001 Canvas\u7684\u91cd\u590d\u4e8b\u4ef6\u5fc5\u987b\u88ab\u652f\u6301\u3002\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0cCanvas.hasRepeatEvents()\u65b9\u6cd5\u5e94\u8be5\u603b\u662f\u8fd4\u56detrue\u3002

9\u3001 \u53cc\u7f13\u51b2\u56fe\u50cf\u5fc5\u987b\u88ab\u652f\u6301\u3002\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0cCanvas.isDoubleBuffered()\u65b9\u6cd5\u5e94\u8be5\u603b\u662f\u8fd4\u56detrue\u3002

10\u3001 \u4e0d\u540c\u7684\u6587\u672c\u8f93\u5165\u6a21\u5f0f\u7684\u53ef\u7528\u6027\uff08\u4f8b\u5982\uff1a\u9884\u8a00\u8f93\u5165\u548c\u4ec5\u4ec5\u662f\u6570\u5b57\u7684\u8f93\u5165\uff09\u5e94\u8be5\u548cJava\u548c\u672c\u5730\u7684\u5e94\u7528\u7a0b\u5e8f\u76f8\u4e00\u81f4\u3002\u8fd9\u610f\u5473\u7740\uff0c\u4f8b\u5982\uff0c\u5982\u679c\u9884\u8a00\u8f93\u5165\u6587\u672c\u6a21\u5f0f\u5728\u672c\u5730\u5e94\u7528\u7a0b\u5e8f\u4e2d\u53ef\u7528\uff0c\u90a3\u4e5f\u5e94\u8be5\u5728Java\u5e94\u7528\u7a0b\u5e8f\u4e2d\u53ef\u7528\u3002

11\u3001 Image\u5bf9\u8c61\u7684\u521b\u5efa\uff08\u4e0d\u7ba1\u683c\u5f0f\uff09\u5fc5\u987b\u81f3\u5c11\u652f\u6301\uff1a\u5c3a\u5bf8\u7b49\u4e8e\uff08\u5c4f\u5e55\u5bbd\u5ea6\uff09\u4e58\u4ee5\uff08\u5c4f\u5e55\u9ad8\u5ea6\uff09\u4e58\u4ee5\uff08\u4ee5\u5b57\u8282\u4e3a\u5355\u4f4d\u7684\u989c\u8272\u6df1\u5ea6\uff09\u6216262144\u6bd4\u7279\uff08128\u00d7128\u00d716\u6bd4\u7279\uff1d32KB\uff09\uff0c\u65e0\u8bba\u54ea\u4e00\u4e2a\u66f4\u5927\u3002\u6ce8\u610f\uff0c\u4e00\u4e2aImage\u5bf9\u8c61\u7684\u5185\u5728\u8868\u73b0\u5e94\u8be5\u4fdd\u6301\u81f3\u5c11\u6bcf\u4e2a\u8c61\u7d2016\u5b57\u8282\u7684\u989c\u8272/\u900f\u660e\u5ea6\u6570\u636e

12\u3001 \u6bcf\u4e00\u4e2a\u5305\u62ec\u5728\u5b57\u7b26\u4e32\u503c\u7684\u901a\u8fc7System.getProperty(\u201cmicroedition.commports\u201d)\u65b9\u6cd5\u8fd4\u56de\u7684\u4e32\u884c\u7aef\u53e3\u540d\u5b57\u5fc5\u987b\u53ef\u83b7\u53d6\u901a\u8fc7javax.microedition.io.CommConnection\u63a5\u53e3

12\u3001 \u5728\u6bcf\u4e2a\u534f\u8bae\uff0cAllowedSender\u57df\u5fc5\u987b\u5339\u914d\u9002\u5f53\u7684\u8f93\u5165\u4e8b\u4ef6\u7684\u5730\u5740\u57df\u3002\u5730\u5740\u57df\u7684\u4f7f\u7528\u548c\u8bed\u6cd5\u548c\u8bed\u610f\u4ee5\u6765\u4e8e\u534f\u8bae\u3002\u7136\u800c\uff0c\u5730\u5740\u548c\u8fc7\u6ee4\u5668\u5fc5\u987b\u88ab\u6bd4\u8f83\u901a\u8fc7\u7cbe\u786e\u7684\u5b57\u7b26\u4e32\u5339\u914d\uff0c\u5728\u90a3\u91cc\uff0c\u5b57\u7b26\u4e32\u88ab\u4e00\u4e2a\u63a5\u7740\u4e00\u4e2a\u5b57\u7b26\u7684\u6bd4\u8f83\uff0c\u5b57\u7b26\u9700\u8981\u6b63\u786e\u5730\u5339\u914d\u901a\u8fc7\u4e24\u4e2a\u901a\u914d\u7b26

13\u3001 \u4ee5\u4e0b\u5730\u7f51\u7edc\u901a\u4fe1\u534f\u8bae\u5fc5\u987b\u88ab\u652f\u6301\uff0c\u63d0\u4f9b\u4e86\u4ee5\u4e0bJava ME\u63a5\u53e3\u7684\u5b9e\u73b0\uff1ajavax.microedition.io.SockerConnection , javax.microedition.io.SecureConnection, javax.microedition.io.HttpsConnection

14\u3001 javax.microedition.io.HttpsConnection\u548cjavax.microedition.io.SecureConnection\u5fc5\u987b\u652f\u6301SSLv3\u534f\u8bae\uff0c\u5176\u5b83\u7684\uff0c\u4f8b\u5982TLS,WTLS\u4e5f\u8bb8\u88ab\u652f\u6301\u3002

15\u3001 \u5e94\u7528\u7a0b\u5e8f\u63cf\u8ff0\u7b26\u5e94\u8be5\u5305\u542bMIDlet-Permissions

16\u3001 \u4ee5\u4e0b\u7684JAD/manifest\u6587\u4ef6\u5c5e\u6027\u88ab\u5b9a\u4e49\u6765\u652f\u6301\u6307\u5b9a\u9884\u671f\u7684\u8fd0\u884c\u65f6\u6267\u884c\u73af\u5883\uff1aRuntime-Execution-Environment\uff1a\u8fd9\u662f\u4e00\u4e2a\u53ef\u9009\u7684\u5c5e\u6027\uff0c\u6307\u51fa\u4e86\u5e94\u7528\u7a0b\u5e8f\u5fc5\u987b\u7684\u8fd0\u884c\u65f6\u6267\u884c\u73af\u5883\u3002\u8fd9\u4e2a\u5c5e\u6027\u4e5f\u8bb8\u6709\u503cMIDP.CLDC.\u5982\u679cMIDlet suite\u4e0d\u6307\u5b9a\u5c5e\u6027\uff0c\u9690\u542b\u7684\u9ed8\u8ba4\u503c\u662fMIDP.CLDC\u3002\u5f53\u503c\u662fMIDP.CLDC\uff0c\u5b9e\u73b0\u7684\u884c\u4e3a\u5fc5\u987b\u575a\u6301\u5728\u4ee5\u4e0b\u663e\u793a\u7684\u66f4\u591a\u7684\u7ec6\u8282\u63cf\u8ff0\u3002\u8fd9\u4e2a\u5c5e\u6027\u503c\u7684\u9644\u52a0\u503c\u88ab\u5728\u5c06\u6765\u5b9a\u4e49\u3002\u624b\u673a\u5b9e\u73b0\u5fc5\u987b\u652f\u6301\u8fd9\u4e2a\u5c5e\u6027\u3002\u5f53\u503c\u662fMIDP.CLDC\uff0c\u5b9e\u73b0\u7684\u884c\u4e3a\u5fc5\u987b\u575a\u6301\u4ee5\u4e0b\u8981\u6c42\uff1a1\u3001\u652f\u6301API\u548cAPI\u884c\u4e3a\uff0c\u4ee5\u53ca\u57fa\u7840\u865a\u62df\u673a\uff0c\u5fc5\u987b\u987a\u4eceCLDC1.1\u89c4\u8303\u30022\u3001\u624b\u673a\u5b9e\u73b0\u4e5f\u8bb8\u4e8c\u9009\u4e00\u5730\u4f7f\u7528Java ME\u7684CDC\u89c4\u8303\u3002\u7136\u800c\uff0c\u5982\u679cCDC\u88ab\u7528\u4f5c\u57fa\u7840\u914d\u7f6e\uff0c\u8fd0\u884c\u5728\u8fd9\u4e2a\u5e73\u53f0\u9876\u7aef\u7684\u5e94\u7528\u7a0b\u5e8f\u5fc5\u987b\u770b\u89c1\u4e00\u4e2a\u8bed\u4e49\u5b66\u548c\u529f\u80fd\u4e0a\u7b49\u4e8eCLDC1.1\u5e73\u53f0\u7684\u73af\u5883\u3002CDC\u7279\u5b9a\u7684API\u6216\u8005CDC\u7279\u5b9a\u884c\u4e3a\u5fc5\u987b\u4e0d\u80fd\u88ab\u66b4\u9732\u7ed9\u5e94\u7528\u7a0b\u5e8f\u6216\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u8005\u30023\u3001\u5f53\u4e00\u4e2a\u5e94\u7528\u7a0b\u5e8f\u5b9a\u4e49\u4e86Runtime-Execution-Environment\u5c5e\u6027\u503c\uff0c\u5e94\u7528\u7a0b\u5e8f\u5fc5\u987b\u4e5f\u5b9a\u4e49\u4e00\u4e2aCLDC\u5e73\u53f0\u5728MicroEdition-Configuration\u5c5e\u6027\u503c\u4e2d\u30024\u3001\u5982\u679c\u4e00\u4e2a\u5e94\u7528\u7a0b\u5e8f\u5b9a\u4e49\u4e86\u4e0d\u88ab\u5b9e\u73b0\u652f\u6301\u7684Runtime-Execution-Environment\u5c5e\u6027\u503c\u6216MicroEdition-Configuration\u5c5e\u6027\u503c\uff0c\u5e94\u7528\u7a0b\u5e8f\u4e0d\u80fd\u88ab\u5b89\u88c5\u3002\u6240\u6709\u7684\u624b\u673a\u5b9e\u73b0\u5fc5\u987b\u652f\u6301MIDP.CLDC\u503c\u5bf9\u4e8eRuntime-Execution-Environment\u5c5e\u6027\u3002

17\u3001 \u7528\u6237\u4f7f\u7528OTA\u4e0b\u8f7d\u5b89\u88c5\u4e4b\u540e\uff0c\u5b9e\u73b0\u5fc5\u987b\u63d0\u793a\u7528\u6237\u662f\u5426\u542f\u52a8MIDlet

18\u3001 \u5b9e\u73b0\u5fc5\u987b\u5141\u8bb8MIDlet\u521b\u5efa\u6700\u5c0f\u4e3a10\u4e2a\u7684\u7ebf\u7a0b

19\u3001 \u652f\u6301\u81f3\u5c11512\u4e2a\u5c5e\u6027

20\u3001 \u652f\u6301MIDlet suite\u5305\u542b1\u52305\u4e2aMIDlet

21\u3001 \u6bcf\u4e2aMIDlet suite\u7684RMS\u81f3\u5c11\u4fdd\u8bc164K\u7684\u7a7a\u95f4\uff0c\u5728\u5185\u5b58\u8db3\u591f\u7684\u60c5\u51b5\u4e0b

22\u3001 \u6bcf\u4e2aMIDlet suite\u81f3\u5c11\u53ef\u4ee5\u521b\u5efa10\u4e2a\u72ec\u7acb\u8bb0\u5f55\u5b58\u50a8

23\u3001 MIDP\u7684MMAPI\u7684\u5b50\u96c6\u5fc5\u987b\u9075\u5b88MMAPI1.1\u6216\u4ee5\u540e\u7248\u672c

24\u3001 MicroEdition.profiles\u7cfb\u7edf\u5c5e\u6027\u4e0d\u80fd\u5305\u542b\u76f8\u540cprofile\u7684\u4e0d\u540c\u7684\u7248\u672c

25\u3001 Image\u5bf9\u8c61\u4e2dISO/IEC JPEG\u548cJFIF\u88ab\u652f\u6301

26\u3001 \u652f\u6301\u8f7d\u5165\u6df1\u5ea6\u4e3a1\u30012\u30014\u30018\u300116\u548c32\u4f4d\u7684PNG\u683c\u5f0f

27\u3001 TextBox\u548cTextField\u7684\u7ea6\u675fTextField.EMAILDDR\u548cTextField.URL\u5fc5\u987b\u5141\u8bb8\u76f8\u540c\u7684\u5b57\u7b26\u88ab\u8f93\u5165\u5982\u540c\u88ab\u5141\u8bb8\u8f93\u5165\u5728TextField.ANY\u7ea6\u675f\u4e0b

28\u3001 \u9002\u5408\u7684\u8bbe\u5907\u5fc5\u987b\u5b9e\u73b0\u57fa\u4e8e\u65f6\u95f4\u7684\u63a8\u6ce8\u518c\uff0c\u5982\u679c\u6ca1\u6709\u5176\u5b83\u7684\u5b89\u5168\u673a\u5236\u57fa\u4e8e\u65f6\u95f4\u7684\u63a8\u6ce8\u518c\u4e0d\u9700\u8981\u88ab\u663e\u5f0f\u7684\u7528\u6237\u7684\u8bb8\u53ef

kjava(J2ME)目前有MIDP1.0和MIDP2.0;但中国移动百宝箱现在只有支持MIDP1.0,很多手机都支持MIDP2.0,如Nokia600
这一个根据不同型号可以查询相关厂家对该款手机的支持情况,一般都会说明是支持MIDP1.0还是2.0

J2ME平台

J2ME(JAVA 2 Micro Edition)平台是目前最火暴的手机游戏平台,尽管它还可以下载和安装一些小的应用程序。J2ME简单的可以理解为JAVA的移动版本,其MIDP(Mobile Information Device Profile,移动信息装置简表)架构就是专门为手机与PDA而设计。

目前MIDP有1.0和2.0之分,后者在兼容性以及游戏的多媒体表现力如音效和振动方面有更好的效果,此外通过测试软件显示,支持MIDP2.0的JAVA游戏在图形运行能力对比1.0版本也有更优秀的表现。目前支持MIDP2.0手机主要为03年下半年以后发布的手机如索爱K700、摩托罗拉V300、诺基亚6230等。

同时,以J2ME平台开发的程序叫做MIDlet,可以直接从在线下载后离线运行,或从PC通过数据线、红外或者蓝牙传输到手机上。由于J2ME程序都很小,只有几十K,所以又被称为K-JAVA。由于K-JAVA(J2ME)是开放平台,因此任何程序设计师甚至程序编写爱好者都能到Sun网站下载J2ME开发工具,为手机写JAVA程序。

此外,J2ME的MIDlet文件都是由.jad(JAVA Description File)和.jar(JAVA Package)呈现,不同的手机品牌在使用安装时会有不同的方式,如索爱的手机则仅需安装JAR文件即可;而三星和诺基亚手机则需要同时下载JAD和JAR文件。

由于J2ME的技术先进,而且又能跨平台运行,因此受到了众多手机厂家的支持,甚至成为现在用户购买手机的一项比较重要的技术指标。所以到目前为止,手机的游戏应用平台中,以支持J2ME的最多,而且J2ME软件开发商也有越来越多的趋势,J2ME已成为2002年下半年之后的行动游戏平台主流。尤其在进入04年之后,基于JSR184的Mobile 3D Graphics API for J2ME的3D游戏开始出现,象索爱S700/K700/Z500以及西门子S65等新机都开始支持在手机上运行3D JAVA游戏。

目前市场上JAVA游戏中支持诺基亚手机最多,而且尽管该品牌部分手机存在下载程序不能超过64K的限制,但无论是运行速度还是在兼容性上诺基亚手机基本上都是最为出色的。

3.电脑下载
电脑下载传送到手机要求玩家对手机的认知比较高。也要拥有一定的电脑基础知识。首先要将游戏下载到电脑之中。

若是通过手机上网下载以及使用短信定购的方式,直接在手机的个人文档或者应用程序中找到(根据手机各不相同),无需在安装,直接可以在类似“我的文件夹”之类的选项找到。

使用电脑下载就需要将文件传送到手机上。

传送到手机的方法有3种。

1.蓝牙传输
这个最简单,买个蓝牙适配器就能传。将蓝牙的驱动安装完毕后,直接用鼠标右键点击你想传的文件,选发送,然后再选通过BLUETOOTH就能传到手机。由于蓝牙的范围在5-10米内,所以只要将蓝牙手机的蓝牙功能打开,放在与电脑距离5-10米的范围都可以直接传输。蓝牙的驱动在任何系统都必须安装。

2.红外线
与蓝牙一样,也是可以使用鼠标来传输。只不过红外需要点对点,所以将手机红外功能打开后,与你所买的红外适配器对整齐,才能传输 。红外在XP、2K、2003的系统下无须驱动。

3.数据线
最麻烦的一种,需要通过软件才能传输,关键在于软件驱动之上,查找安装相当的麻烦,所以再此还是建议使用以上的方式。至于连接方法,就很简单了,大家多摸索摸索。

如果你下载的是JAVA游戏,后缀名为JAR,不要解压缩,将JAR文件直接传到手机。如果是MPN游戏,就必须解压缩,然后将里面的MPN文件全部按顺序传进手机。

NOKIA K-JAVA游戏下载基本知识

每一个KJAVA游戏主要由2个文件组成。1个是扩展名为jar的文件,1个是扩展名为jad的文件。

下面简单介绍一下两者的作用:
jar文件是实际的游戏文件。通过PC安装游戏其实只需要一个jar文件即可,这也就是许多手机游戏站点提供的众多游戏下载包中只包含一个jar文件的原因。

jad文件是一个描述性的文件,它其实就是一个文本文件,我们可以用文本程序打开它进行编辑。

我们在下载了游戏之后会发现有些游戏安装不了,提示缺少JAD文件,这种问题常见于使用OPM的手机玩家,这时我们可以使用NOKIA_JAD文件生成器(即JADgen)来生成JAR相应的的JAD文件,使用PC套件的朋友就可以不必为这个问题担心,它只需要一个JAR文件就可以将游戏传入到手机中使用。

一个游戏在不同品牌的手机运行,需要下载相应版本的jar文件才能正常运行。 由于本人是N6108的使用者,下面就主要介绍Nokia品牌的KJAVA游戏。

【诺记手机类型介绍】

Nokia手机的kjava游戏主要可以分为2个大类,一类是S40系列,一类是S60系列

S40系列的手机包括:Nokia6100,Nokia6610,Nokia6108,Nokia7210,Nokia7250等

S60系列的手机包括:Nokia7650, Nokia3650, Nokia3310等

2个系列手机的主要外观区别在于屏幕大小不同。区别Nokia新款手机是哪个系列,基本上看屏幕大小即可判断。

S40系列手机的屏幕为128×128象素,S60系列手机的屏幕为176×208象素。因此下载游戏是需要针对自己的手机型号来下载相应游戏。不然就有可能出现游戏不能兼容的问题 ,而且,两个系列的手机其KJAVA游戏的大小限制也不一样,S40系列机器KJAVA游戏的大小限制在64K之内,超过这个大小就会玩不了。而S60系列的机器就可以下载大型一点的KJAVA游戏。至于其具体容量大小的限制,小弟还不太清楚。

【KJAVA游戏安装介绍】

简单介绍一下安装KJAVA游戏的方法(目的就是就是把jar文件传送到手机上,使KJAVA游戏为我所用)。

1。通过PC和数据线安装

条件:需要手机支持数据线传输,并购买指定手机的数据线,安装Nokia PC Suite(随机光盘自带)或者OPM,本人喜欢使用OPM传输软件。

2。通过PC和红外线接收器安装

条件:需要手机支持红外线,并购买红外线接收器,(推荐购买SMH-IR650或者BAFO品牌的红外适配器)这样就可以直接和手机对传文件(S60系列受机支持,本人试验了7650,确实可行),也可以使用Nokia的PC Suite或者OPM传送文件。

3。通过PC和蓝牙接收器安装

条件:需要手机支持蓝牙,并购买蓝牙接收器。利用蓝牙的管理工具就可以找到手机并可以传输文件 。

4。通过自己收发E-mail安装

条件:需要手机开通GPRS,并且支持接收E-mail,只要把你常用的信箱在手机配置好,再把KJAVA游戏的jar文件发送给自己,通过手机接收即可。由于游戏都不大,用手机接收E-mail也是很方便的 。

5。通过WAP下载游戏安装

条件:手机开通GPRS,并设置好参数,到某些游戏的WAP网站,直接下载游戏。

MIDP 1.0 提供了以下功能:
  ·显示工具箱
  ·用户输入方法
  ·持久性数据存储(使用简单的面向记录的数据库模型)
  ·基于 HTTP 1.1 的网络(使用 CLDC 通用连接框架)
  Java 规范请求 (Java Specification Request, JSR)-37 中定义了 MIDP 1.0 标准。
  MIDP 2.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 层的通信。 在MIDP1.0里面,Canvas的绘图只能写在paint(Graphics g)方法里,因为一来g参数在此方法结束后就没有意义了,保留它的副本没有用处;二来此方法由平台调用,而不是由Canvas这个线程调用。因此在MIDP里绘图总是一件很痛苦的事情,特别是需要保证Canvas线程与调用paint的那个线程同步(J2me的Specification说的是,可以保证你repaint了以后,paint方法在之后的某个时刻被调用,但不能保证马上就被调用,因为paint是个比较耗时的方法,它无法确定其他的paint是否及时完成了)。在MIDP2.0里,有所改进了。首先是你可以通过GameCanvas的一个方法getGraphics来获取那个g,然后这个g就永不失效了(当然是在这个GameCanvas的生命周期内)。当然,这个g和1.0里的还是有所区别。这个g实际上是画在一块缓冲“画布”上,即内存里。完全画好以后,再用flushGraphics刷到屏幕上。缓冲的好处是可以让屏幕在画时不显得闪烁,很有用的东西。flushGraphics还有另外一个作用,就是强制输出,以达到显示的那个线程与游戏控制线程的同步(这也是为什么做时间协调时,要把显示方法所消耗的时间也计算进来)。

MIDP2.0相对于MIDP1.0最大的变化就是增加了media和game包,在rms的读取也有微小的改动.其实,MIDP2.0主要是给游戏开发提供方便,采用增加的两个包能够快速开发游戏程序,效率相对于MIDP1.0要高些.
不过现在的市场行情是,支持MIDP2.0的手机比支持MIDP1.0的远远要少,考虑到市场的效应,还是应用MIDP1.0的为多.并且根据目前的状况,此情形还会持续很长一段时间.
如果你学的话,建议双管齐下,因为两者区别不大,但MIDP2.0的可移植性好些.
举个例子,
比如,在MIDP1.0的状况下,开发西门子的手机游戏,如果要播放音乐的话,就要
import com.siemens.mp.media.*;
这样的直接后果就是在别的型号的手机无法运行.
所以在平时开发中就会遇到:
支持MIDP2.0的手机不多,运用MIDP1.0的做出的声色俱全的游戏移植性又不高的尴尬情形
所以,究竟选择哪个开发,就是仁者见仁,智者见智了

版本升级,功能扩充,修正以前版本的bug

扩展阅读:james maxwell ... mac mini m2 ... java入门网站 ... java windowbuilder ... java j2me runner ... james murray ... javascript 在线 ... 学java网站 ... james davis ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网