å¼åç¨äºå¤ä¸ªè®¾å¤ç Mobile åºç¨ç¨åº
æ¬æç¨æ¯å¸®å©å¼åè
çæå¼å MIDP å CDC åºç¨ç¨åºçç³»åæç¨ä¹äºã强ç建议æ¨å
å¦å® MIDP å¿«éå
¥é¨æåï¼ç¶ååå¼å§å¦ä¹ æ¬æç¨ãæä»¬å°ç»§ç»æå»ºå¨è¯¥æç¨ä¸å®æç "MyHello" 项ç®ï¼å¹¶è¯´æå¦ä½å°å
¶é¨ç½²å°ä¸åç仿çå¨ä»¥åå¦ä½é对ç¹å®ç设å¤ç¯å¢å®å¶ä»£ç ã请注æï¼æ¬æç¨ä¸ä»ç»çæ¦å¿µä»¥åæ¼ç¤ºçæ¹æ³åæ ·ä¹éç¨äºå¨ IDE ä¸å建ç CDC åºç¨ç¨åºã
ç®å½
æéç软件
æ¨å¿
é¡»é¦å
å®è£
JDK 5 ææ´é«çæ¬ä»¥å NetBeans IDE Mobility çæ¬æå®æ´çæ¬ï¼ä¸è½½ï¼ï¼ç¶åæè½çæå¼å Java ME MIDP/CLDC åºç¨ç¨åºãæå
³è®¾ç½®ç³»ç»ç帮å©ï¼è¯·åè§å®è£
说æã
æ·»å 仿çå¨å¹³å°
仿çå¨å¹³å°ç±ç§»å¨çµè¯å¶é åæä¾ï¼å¼åè
å¯ä»¥ä½¿ç¨è¯¥å¹³å°æ¥æ¨¡æç¹å®ç§»å¨è®¾å¤çè¡ä¸ºï¼ä»è帮å©è°è¯ä»ä»¬æå建çåºç¨ç¨åºãNetBeans IDE Mobility å
æ¬ Sun Java Wireless Toolkitï¼å¹¶ä¸æ¯æè®¸å¤å
¶ä»è½¯ä»¶å¼åå·¥å
·å
(Software Development Kit, SDK)ï¼æ¨å¯ä»¥ä» NokiaãSony Ericsson å Motorola çä¾åºåç«ç¹ä¸è½½è¿äºå·¥å
·å
ãæ¥ç NetBeans Mobility 常è§é®é¢è§£çï¼å¯ä»¥æ¾å°æ¯æç MIDP 仿çå¨å表ã
æ·»å æ°ç仿çå¨å¹³å°
- ä»ä¸»å·¥å
·æ ä¸éæ©âå·¥å
·â>âJava å¹³å°âã
- å¨âJava å¹³å°ç®¡çå¨âå¯¹è¯æ¡ä¸ï¼åå»âæ·»å å¹³å°âæé®ã
- å¨â鿩平å°ç±»åâ页ä¸ï¼éæ©âJava ME MIDP å¹³å°ä»¿çå¨âãåå»âä¸ä¸æ¥âã
- å¨â平尿件夹â页ä¸ï¼IDE å°æç´¢ææå¯ç¨ç Java ME å¹³å°å¹¶å°è¿äºå¹³å°åå¨çªå£ä¸ãåæ¶ï¼è¿ä¼éªè¯å¹³å°æ¯å¦ç¬¦åç»ä¸ä»¿ç卿¥å£ (Unified Emulator Interface, UEI) æ åï¼å¦æç¬¦å该æ åï¼åå°éä¸å¹³å°åç§°æè¾¹çå¤éæ¡ãä¸ç¬¦å UEI ç平尿è
ç±äºå
¶ä»åå èæ æ³å®è£
çå¹³å°å°ä»¥çº¢è²ååºã该å导è¿å¯æ è¯å·²å®è£
äºåªäºå¹³å°ã注æï¼è¦å®è£
ä¸ç¬¦å UEI çå¹³å°ï¼è¯·åå»âä¸ä¸æ¥âæé®ï¼ç¶åéæ©âå®å¶ Java ME å¹³å°ä»¿çå¨âã
- å¨â平尿件夹â页ä¸ï¼éä¸è¦å®è£
çä»»ä½å¹³å°ä»¿çå¨æè¾¹çå¤éæ¡ãæ£æµå°å¹³å°åï¼ä¾¿ä¼å¯¹å
¶è¿è¡å®è£
ãåå»â宿âãç¶åï¼åå»âå
³éâã
- å¨âæä»¶âçªå£ä¸ï¼å³é®åå» "MyHello" 项ç®èç¹ï¼ç¶åéæ©â屿§âã
- éæ©âå¹³å°âèç¹ï¼ç¶åä»â仿çå¨å¹³å°â䏿èåä¸éæ©æ°ä»¿çå¨çåç§°ï¼ä¾å¦ï¼"Sun Java Wireless Toolkit 2.5.2"ï¼ãåå»âç¡®å®âã
æ´æ¹ç¼ºç仿çå¨è®¾å¤
- å³é®åå» "MyHello" 项ç®èç¹ï¼ç¶åéæ©â屿§âãå¨â屿§âå¯¹è¯æ¡ä¸ï¼éæ©âå¹³å°âèç¹ãæ¤æ¶ï¼æ¨ä¾¿å¯ä»¥æ´æ¹ç¼ºçé
ç½®ä¸ç设å¤ã
- åå»â设å¤â䏿å表ï¼ç¶åéæ© "QwertyDevice"ãåå»âç¡®å®âã
- 忬¡è¿è¡åºç¨ç¨åºï¼æ¤æ¶å°å¨
QwertyDevice 仿çå¨ä¸è¿è¡ã
使ç¨é
ç½®
使ç¨é
ç½®ï¼å¯ä»¥ä¸ºé¡¹ç®å建å¤ç»åå JAR å Java åºç¨ç¨åºæè¿°ç¬¦ (Java Application Descriptor, JAD) æä»¶ãè¿æ ·ï¼æ¨ä¾¿å¯ä»¥å建ä¸ç»æºä»£ç ï¼ç¶åé对è¦ä¸ºå
¶ç¼ç¨çæ¯ä¸ªç§»å¨è®¾å¤æ¥å®å¶è¿äºæºä»£ç ã
æ·»å é
ç½®
- å³é®åå» "MyHello" 项ç®èç¹ï¼ç¶åéæ©â屿§âãå¨â屿§âå¯¹è¯æ¡ä¸ï¼ä»â项ç®é
ç½®â䏿å表ä¸éæ©âæ·»å é
ç½®âãå°æå¼âæ·»å é
ç½®âå¯¹è¯æ¡ã
- å¨âé
ç½®åç§°âåæ®µä¸ä¸ºé
ç½®è¾å
¥ä¸ä¸ªåç§°ã该åç§°åºæ è¯ç®æ å¹³å°ï¼æ¨å°å¨è¯¥å¹³å°ä¸é¨ç½²ä¸ºæ¤é
ç½®å建ç JAR/JADã卿¬ä¾ä¸ï¼è¯·è¾å
¥
BlackWhiteDisplayï¼ç¶ååå»âç¡®å®âãæ¨ååå建äºä¸ä¸ªæ°é
ç½®ã
- æ¤å¤ï¼ä¹å¯ä»¥éè¿åå»â屿§âå¯¹è¯æ¡ä¸çâ管çé
ç½®âæé®æ¥æ·»å é
ç½®ãæ¤æ¶å°æ¾ç¤ºâ项ç®é
置管çå¨âå¯¹è¯æ¡ï¼å
¶ä¸å
å«ç¨äºæ·»å ãå 餿å¤å¶é
ç½®çé项ã
æ´æ¹é¡¹ç®é
ç½®
使ç¨âæ°å»ºé¡¹ç®âå导ä¸ç模æ¿ï¼å¯ä»¥å建ä¸åç±»åç项ç®é
ç½®ãæ¤å¤ï¼ä¹å¯ä»¥ä½¿ç¨ä¸»å·¥å
·æ ä¸çé
ç½®ä¸æèåæ¥å¿«éæ´æ¹é¡¹ç®é
ç½®ã
å®å¶é
ç½®
æ¨å¯ä»¥æ ¹æ®éè¦å¨é¡¹ç®ä¸æ·»å ä»»ææ°éçé
ç½®ãç¶åï¼å¯ä»¥å¨é¡¹ç®â屿§âå¯¹è¯æ¡ä¸ä¿®æ¹ææ·»å çæ¯ä¸ªé
ç½®ç设置ã
- å³é®åå» "MyHello" 项ç®èç¹ï¼ç¶åéæ©â屿§âãå¨â屿§âå¯¹è¯æ¡ä¸ï¼éæ©âå¹³å°âèç¹ã
- ä»â屿§âå¯¹è¯æ¡é¡¶é¨çé
ç½®ç»åæ¡ä¸éæ© "BlackWhiteDisplay"
é
ç½®ã
- å°ç¦ç¨âå¹³å°âå¯¹è¯æ¡ä¸çææç»ä»¶ãè¿æ¯å 为æ¤é
ç½®å½åéç¨çæ¯è¯¥é¢æ¿ç缺çé
ç½®æä½¿ç¨çå¼ãåæ¶éä¸é¢æ¿é¡¶é¨çâä½¿ç¨ "DefaultConfiguration" ä¸çå¼âé项ãç°å¨ï¼å¯ä»¥ç¼è¾è¯¥é¢æ¿ä¸çææç»ä»¶ã
- å°â设å¤âéé¡¹æ´æ¹ä¸º "DefaultGrayPhone"ã
- 忢â屿§âå¯¹è¯æ¡é¡¶é¨çâ项ç®é
ç½®âå¯¹è¯æ¡ï¼å¹¶è§å¯â设å¤âé项éå½åéå®çé
ç½®èåçååçæ
åµãè¿ç§é
ç½®å®å¶æ¹æ³éç¨äºè¯¥å¯¹è¯æ¡ä¸çæ¯ä¸ªé¢æ¿ï¼â常è§â颿¿é¤å¤ï¼ãåå»âç¡®å®âä¿åæåçé
ç½®æ´æ¹ï¼å¹¶éåºâ屿§âå¯¹è¯æ¡ã
å建æ§è½
æ§è½æ¯é¡¹ç®é
ç½®çç¹å®å±æ§ã宿¢å¯ä»¥æ¯ç©ç屿§ï¼å¦å±å¹å¤§å°ï¼ï¼ä¹å¯ä»¥æ¯é
ç½®ææ¯æç API æ JSRãæ¨å¯ä»¥å建ä¸ä¸ªæ°æ§è½ï¼å¹¶å°å
¶ä¸ä¸ä¸ªæå¤ä¸ªé¡¹ç®é
ç½®ç¸å
³èãç¶åï¼å¯ä»¥ä½¿ç¨é¢å¤çç¨åºä»£ç åå°æäºä»£ç ä¸è¯¥æ§è½ç¸å
³èãä¹åï¼å¦æéè¦æ·»å æå é¤é
ç½®ï¼åæ éæ£æ¥ææä»£ç ï¼ä¹æ éå°æ¤é
ç½®ä¸æ¯ä¸ªä»£ç åç¸å
³èãæ¨åªéå°è¯¥æ§è½æ·»å å°é
ç½®ä¸ãç¶åï¼æ¤é
置便ä¼èªå¨ä¸è¯¥æ§è½æå
³èçä»»ä½ä»£ç åç¸å
³èã
- å³é®åå» "MyHello" 项ç®èç¹ï¼ç¶åéæ©â屿§âã
- ä»âç±»å«âèåæ ä¸éæ©âæ§è½â页ã
- ä»â项ç®é
ç½®â䏿èåä¸éæ©ä¸ä¸ªé
ç½®ãè¿ä¼å°æ§è½ä¸è¯¥é
ç½®ç¸å
³èã
- 妿å¿
è¦ï¼è¯·åæ¶éä¸âä½¿ç¨ "DefaultConfiguration" ä¸çå¼âå¤éæ¡ã
- åå»âæ·»å âæé®ãå°æå¼âæ·»å æ§è½âå¯¹è¯æ¡ã
- å¨âæ·»å æ§è½âå¯¹è¯æ¡ä¸ï¼è¾å
¥æ§è½çåç§°ï¼æè
ä»ä¸æèåä¸éæ©ä¸ä¸ªæ§è½ãï¼å¯éï¼è¾å
¥æ§è½çå¼ãåå»âç¡®å®âå
³éâæ·»å æ§è½âå¯¹è¯æ¡ãç°å¨ï¼è¯¥æ§è½å°ä¸éå®ç项ç®é
ç½®ç¸å
³èã
æ¤å¤ï¼ä¹å¯ä»¥å°è¯¥æ§è½ä¸å
¶ä»é
ç½®ç¸å
³èï¼æ¹æ³æ¯ï¼ä»â项ç®é
ç½®âèåä¸éæ©ä¸ä¸ªä¸åçé
ç½®ï¼ç¶ååå»âæ·»å âæé®ã
为ç¹å®é
置添å é¢å¤çç¨åºä»£ç
使ç¨é¢å¤çç¨åºåï¼å¯ä»¥å建ã管çåè·è¸ªç¹å®äºä¸ä¸ªæå¤ä¸ªé¡¹ç®é
ç½®ææ§è½ç代ç ã该代ç ä»
å¯¹ææ è¯çé
ç½®ææ§è½å¯ç¨ï¼æç¦ç¨ï¼ã
- å¨ HelloMIDlet.java ç¼è¾å¨çªå£ä¸ï¼å³é®åå»å®ä¾å TextBox çæºä»£ç è¡ (
helloTextBox = new javax.microedition.lcdui.TextBox(null, "Make my day",120, 0x0);)ã
- å³é®åå»è¯¥è¡ï¼ç¶åéæ©âé¢å¤çç¨åºåâ>âå建 If/Else åâãå¨ç¬¬ä¸ä¸ªç²çº¢è²é¨åï¼å° "Color" ä¸è¯æ·»å å° "Hello World" å符串åé¢ãå¨ç¬¬äºä¸ªç°è²é¨åï¼å° "Gray" æ·»å å° "Make my day" å符串åé¢ã
- 彿´»å¨é
ç½®ä¸æä»¤å¼ï¼å¨æ¬ä¾ä¸ä¸º DefaultConfigurationï¼ç¸å¹é
æ¶ï¼
//#if é¢å¤çç¨åºæä»¤ææ è®°ç代ç å°çæã彿´»å¨é
ç½®ä¸é¢å¤çç¨åºçå¼ä¸å¹é
æ¶ï¼å°ä½¿ç¨ //#else é¢å¤çç¨åºæä»¤ææ è®°ç代ç ãä¹å°±æ¯è¯´ï¼å½æ´»å¨å¹³å°ä¸º "DefaultConfiguration" æ¶ï¼ä»¿çå¨å°æ¾ç¤º "Make my day Color"ï¼å½æ´»å¨å¹³å°ä¸ºä»»ä½å
¶ä»ä»¿çå¨å¹³å°æ¶ï¼ä»¿çå¨å°æ¾ç¤º "Hello World Gray"ã//#endif é¢å¤çç¨åºæä»¤ç¨äºç»æé¢å¤çç¨åºåã
æ¨å¯ä»¥æç
§æ´æ¹ä»¿çå¨å¹³å°ä¸ç说æï¼éè¿ä½¿ç¨ä¸åç仿çå¨è®¾å¤è¿è¡ MIDlet æ¥æµè¯é¢å¤çç¨åºä»£ç ã
è¿è¡é
ç½®
æ¢å¯ä»¥åç¬çæå¹¶è¿è¡ä¸ä¸ªé
ç½®ï¼ä¹å¯ä»¥åæ¶çæå¹¶è¿è¡å¤ä¸ªé
ç½®ã
- å³é®åå» "MyHelloMIDlet" 项ç®èç¹ï¼ç¶åéæ©âè¿è¡âã
- 使ç¨å·¥å
·æ ä¸çé
ç½®ç»åæ¡å°é
ç½®æ´æ¹ä¸º "BlackWhiteDisplay"ã忬¡éæ©âè¿è¡âã
- å°åºç°ä¸¤ä¸ªä»¿çå¨ï¼ä¸ä¸ªä¸ºå½©è²ï¼ä¸ä¸ªä¸ºç°è²ãç°è²ä»¿çå¨å°æ¾ç¤º "Make my day Gray"ï¼å½©è²ä»¿çå¨å°æ¾ç¤º "Make my day Color"ã
-
è¦åæ¶çæå¤ä¸ªé
ç½®ï¼è¯·å³é®åå»é¡¹ç®ï¼ç¶åéæ©âæ¹éçæâã卿å¼çå¯¹è¯æ¡ä¸ï¼éä¸è¦çæçæ¯ä¸ªé
ç½®æè¾¹çå¤éæ¡ã
-
è¦å¿«éæµè¯è®¾å¤ï¼è¯·å³é®åå»é¡¹ç®ï¼ç¶åéæ©âè¿è¡æ¹å¼âã卿å¼çå¯¹è¯æ¡ä¸ï¼éæ©ä»¿çå¨å¹³å°ä»¥åè¦è¿è¡ç设å¤ã
å¦è¯·åè§
è³æ¤ï¼æä»¬å·²å建äºä¸ä¸ªç®åçåºç¨ç¨åºï¼å¨å¤ä¸ªä»¿çå¨ä¸å¯å¨äºè¯¥åºç¨ç¨åºï¼å¹¶æ·»å äºä»£ç å®å¶ä»¥ç¡®ä¿å¯å°å
¶æ£ç¡®é¨ç½²å°å¤ä¸ªè®¾å¤ä¸ãå¼å MIDP å CLDC åºç¨ç¨åºçä¸ä¸æ¥æ¯äºè§£å
¶ä»æå
³è§£å³è®¾å¤ç ´ç¢é®é¢çææ¯ã