1.LiMoç³»ç»ï¼
LiMoç³»ç»ï¼
LiMoæ¯ä¸ä¸ªéçå©çLinuxç»ç»ï¼ç±å½å¤å¤å®¶è¿è¥åæåç»æï¼æ¨å¨æ¨å¹¿å¼æºè½¯ä»¶ç使ç¨ï¼è¿èéä½å¼ååç产ææ¬ãèªä»è°·æåè¹æå¨è¿å»ç两年éè¿å ¥ç§»å¨å¸åºä»¥æ¥ï¼ææºå¸åºçéç¹ä¸ç´å¨å软件å¼å转åãææºåååè¿è¥åè¶æ¥è¶å¤å°å¯»æ±éç¨LiMoãLiMoçå ³é®æåæ²è¾¾ä¸°ãæ³å½çµä¿¡æä¸çOrangeãæ¥æ¬çNTT DoCoMoãé©å½çSKçµä¿¡ãTelefonica SAãç¾å½è¿è¥åVerizonæ 线çå ¬å¸å·²ç»å¨å¹´æ¨åºLiMoææºãå¼åå·¥å ·
Windows Mobileç主æµå¼åå·¥å ·è¯å®æ¯VSäºï¼Androidæ¯Eclipseï¼ä¸¤ä¸ªæ¯è¾æ¥è¯´ï¼ä»ç§»å¨å¼åæ¹é¢æ¥è¯´ï¼VSæ çè¦å¥½è¿Eclipseï¼ä»è°è¯æ¥è¯´ï¼VS+ActiveSync对äºæ¨¡æå¨åçæºçæ¯æåçå¾ä¸éï¼VSçè°è¯å¨æ¯Eclipseè¦å¼ºå¥½å¤ï¼å¼åAndroidç¨åºï¼ç»å¸¸ä¼ç±äºè°è¯éº»ç¦ï¼éåå°ä¸ç¨è°è¯å¨ï¼èæ¯ä½¿ç¨Logcatæ¥å®ä½é误ï¼åå æ¯adbï¼Androidä¸ç±»ä¼¼äºActiveSyncä¸æ ·çåæ¥å·¥å ·ï¼ççè¿æ¯ä¸ä¸ª betaç产åï¼è½ç¨ä½ä¸å¥½ç¨ãä½æ¯Androidå¯ä»¥å¨Linuxå¼åï¼æä¹ç¸ä¿¡ï¼å¨å¤§å¤æ°ä¼ä¸çº§å¼åä¸ï¼åºäºææ¬çèèï¼ä¼ä¸ä¹ä¼ä¸è¬éæ© ubuntuæ¥è¿è¡å¼åï¼å¨Linuxçä¸çéï¼å è´¹å¼æºææ¯çéãããã
SDKèµæº
MSDNï¼Emulatorï¼å¹¿éçå客èµæºï¼ä½æ们Windows Mobile å客åå°ç»å°±æå¾å¤èµæï¼ï¼Windows Mobileçå¼åé常丰å¯ï¼èAndroidä¹å 为äºååæ¨åºçç³»ç»ï¼å¦ä¹ çèµæºå¾å°ï¼googleå¼æ¾çSDKä¹å¹¶ä¸å ¨é¢ï¼ç»å¸¸å¨å¼åAndroid çæ¶åï¼ä¸ä¸ªå°å°çé®é¢é常é½ä¼ç 究å¾ä¹ ï¼ä»£ç èµæºå°±æ´å°äºï¼èä¸ä¸ä¸ªäºå®æ¯ï¼å¾å¤ååé½å¨å®å¶èªå·±çAndroidï¼è¿æ ·Androidå¯è½ä¼å 为ä¸åçè£åªä¿®æ¹è让SDKç»ä¸ä¸èµ·æ¥ï¼è¿è让Anroidç¨åºä¸è½ç¸äºå ¼å®¹ã
å¼åè¯è¨ä¸ç³»ç»ç»æ
JAVAä¸C#ï¼ä¸å伯仲ï¼è¯è¨çç¹æ§æ¥è¯´ï¼å°±ä¸ç¨ç»è¯´äºï¼ è¿éæ³ä»ä¸ä¸ªHelloWorldæ¥è°ä¸ä¸å¨å¼åæè·¯ä¸ï¼ä¸¤è æå¤å°ä¸åã对äºWindows Mobileæ¥è¯´ï¼
ä¸ä¸ªHelloWorldï¼åªéè¦å建ä¸ä¸ªå·¥ç¨ï¼æ个LableåButtonï¼å¨Buttonååºäºä»¶éåï¼this.lable1.Text="Hello Wolrd";
èAndroidï¼ä¹éè¦å建ä¸ä¸ªAnroidå·¥ç¨ï¼å®äºä¹åï¼å°±ä¸è½ææ½äºï¼å¦æè¦å®ç°ä¸ä¸ªåä¸é¢ä¸æ ·çææï¼é¦å å¾å建ä¸ä¸ª Activityï¼è¿ä¸ªä¸è¥¿ç±»ä¼¼äºä¸ä¸ªFormåå»UIçä¸è¥¿ï¼ä»å ä¸Viewå°±è½å®ç°åFormä¸æ ·çUIï¼ï¼ç¶åå°layoutéï¼æ·»å ä¸ä¸ª Layout.xmlï¼è¿ä¸ªäºç¨æ¥é ç½®Formä¸LableåButtonçå¸å±ï¼ç¶åï¼å¨Activiyä¸è¦åä¸ä¸å¥ï¼ setContentView(R.id.Layout),盘源盘安sourceinsight源码查看Rè¿ä¸ªç±»æ¯èªå¨çæçç±»ï¼ç±»ä¼¼äºWMä¸Designer.csï¼ç¶åè·å以ä¸Layoutä¸ç Buttonï¼
Button button = (Button) findViewById(R.id.btn);
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
TextView text=(TextView)findeViewById(R.id.text);
text.setText("Hello World");
}
å®äºä¹åï¼Debugä¸ä¸ãæ¯è¾ä¸æ¥ï¼ç¡®å®éº»ç¦ä¸ç¹ã
å¦å¤ææ³è¯´ä¸ä¸Anroidä¸çIntentï¼å¨WMä¸ï¼çªä½ä¹é´æ¯å¯ä»¥ç¸äºå¼ç¨ï¼è¿æ ·å¯ä»¥å®ç°åè½åçé¢ä¸ç跳转ï¼èAndroidä¸Activityæ¯ä¸å»ºè®®è¿è¡ç¸äºé´å¼ç¨çï¼ä»ä»¬ä¹é´æ¯éè¿Intentç¸äºéä¿¡çï¼Intent ä¸ä½å¯ä»¥å®ç°åºç¨ç¨åºå çéä¿¡ï¼è¿å¯ä»¥å®ç°åä¸å¹³å°ä¸åºç¨ç¨åºä¹é´çç¸äºéä¿¡çï¼è¿ä¸ç¹æ¥è¯´ï¼WMæ£æ¯æ¬ 缺çã
UI设计
Windows Mobile 6.5åå¸äºï¼ä»æ´ä¸ªUI Frameworkä¸æ¥è¯´ï¼å¹¶æ²¡æåå¤å¤§çæ¹å¨ï¼WMçUIä»ä¸å¼å§å°±å¨è¢«PCç»æ¶ï¼å¾å¤ç¨æ·é½ä¸è®¤å¯è¿ç§WindowsçUIï¼å¯è½å¨Windows Mobile 7ï¼å¾®è½¯ä¼è§æè¿æ¥ï¼æè¢æ¨¡ä»¿ä¸ä¸iphone,å°æ¶ååå°å¾ç«åºè¯¥æ²¡ä»ä¹é®é¢ï¼èAndroidçUIé£æ ¼åiphoneæäºç¸ä¼¼ï¼è¯å®æ模仿åé´ï¼ï¼å¦æè¦è®¾è®¡æ¼äº®é ·ç«çUIï¼Androidè¯å®ä¼èµ¢è¿WMï¼ä¸ä¸ªDialogï¼å¨Androidä¸å¯ä»¥è®¾è®¡ä»»æå欢Viewï¼ç¶åæView Setå°Acitivtyä¸ï¼å¹¶ä¸æ¯è¯´WMä¸è½åï¼éåMessageBoxç±»ï¼éè¿GDIï¼è´¹ç¹å²ä¹è½ååºæ¥ï¼ä½æ¯ä»åæ´ä¸ªOS UIé£æ ¼è¯å®æ¯ä¸ç¸ç§°ï¼ï¼è对äºåºç¡æ§ä»¶æ¥è¯´ï¼æ 论ListViewï¼ç¹æ®Buttonï¼TabViewçï¼æ¯è¾WMæ¥è¯´ï¼å¨ç¼©æ¾ï¼åæ¢è¡ä¸ºï¼æ»å¨çå¨ç»æææ¥è¯´ï¼WMè¯å®æ¯å¾åçãå ¶å®ä½¿ç¨C++ï¼å¨WMä¹æå¾å¤ç«é ·çåºç¨ï¼æ¯å¦è¯´Pointui ï¼ä½æ¯å¼åææ¬å¾å¤§ï¼èä¸WMè¦èµ¢ï¼OSçUI Frameworkææ¯æ¯æ¼çéç¹ï¼è¿æ ·ä¹ä¸çAPPæè½ææ´å 丰å¯çåºç¨ã
å¼æ¾æ§
è¿ä¸ªè¯å®æ¯Android大赢äºï¼å æ¬iphoneï¼Symbianï¼MTK çï¼Androidçå¼æ¾æ§è½ä½¿æ¯æä»ç硬件æ´å å¤å ï¼å¾å¤ååè¿è¥åä¹å å ¥è¿æ¥ï¼æ¯å¦è¯´AT&Tï¼Tï¼Moibleï¼ChinaMobile çï¼è¿è¥åå¸æå®å¶æå¡ï¼è®©ååå¶é ä»ä»¬æå®çå®å¶ç³»ç»ï¼æ¥è·åæ¶è´¹è çæå¡è´¹ç¨ãä¸è±é±çç³»ç»è°é½å欢ï¼WMçé«é¢ææè´¹ç¨åWindows Mobileçä¸å¼æºï¼ä¹ä¸å¯è½å¼æºï¼ï¼è®©WMæ¯è¾å¼åç³»ç»æ¥è¯´çå½åä¸è¿æ¯å·®å¾å¤çï¼Androidä¸WMçåå¼ï¼å¹¶ä¸æ¯MSä¸Googleçæ£é¢äº¤éï¼èæ¯googleæç»äºå ¨ä¸çå欢å è´¹Mobile OSçååï¼è®©ä»ä»¬æ¥åMSå¹²ï¼èAndroidç大赢ï¼å°ä¼æ¯ææºååï¼æ¯å¦è¯´æ©æï¼ä¸æçå 为ææºåäºå¾å¤èä¸æ²¡ç»å«äººäº¤ææè´¹ï¼ï¼ç§»å¨è¿è¥åï¼å 为ç¨ç人å¤äºï¼äº¤çç½ç»æµéè´¹ï¼æµæ°æå¡è´¹ä¹æ¶çå¤äºï¼ï¼å导ä½å ¬å¸ï¼é«éï¼TIçï¼è¯çåºè´§é大äºï¼ï¼è½¯ä»¶å ¬å¸ï¼åä¸ªå ¬å¸æåä¸ªå ¬å¸çå°ç®çï¼æ¯å¦è¯´è°·æï¼è¯å®æ¯æ索广ååæäºAndroidï¼app软件å¨ä»¥åçapp Marketéæ¶é±ãããï¼
ç±»åºååºç¨è½¯ä»¶
è¿éæ³è¯´ä¸ä¸æµè§å¨åæ°æ®åºï¼WMæMobile IEåSqlserver Compactï¼AndroidæWebKitåSqlLiteï¼æªæ¥ç移å¨æä½ç³»ç»å°ä¼æ¯Web OSç¹æ§çç³»ç»ï¼æ¬äººè§å¾WMææ¬ ç¼ºçä¹å°±æ¯è¿ä¸ªæ¹é¢ï¼æªæ¥çWebåºç¨å°ä¼æ´å å¤å åï¼webç¨åºåæ¬å°ç¨åºå¯¹ç¨æ·æ¥è¯´åºè¯¥æ¯éæçï¼Androidä¸ä¸ä¸ªé常大ç亮ç¹å°±æ¯Widgetï¼å¨Homeä¸Widgetçæ°éè¦è¿è¿å¤§äºæ¬å°åºç¨ï¼å 为Widgetæ¯è½»é级çï¼å¤¸å¹³å°çã Moible IEçæ ¸å¿ä¸WebKitæ¯ä¸åçï¼ä½æ¯ä½¿ç¨HTMLï¼JS+CSSçåºç¨ç¨åºï¼å°ä½¿Widgetæ 论å¨PCè¿æ¯åç§ææºä¸ï¼åªè¦ææµè§å¨ï¼å°±åå¯ä»¥è³å°è·èµ·æ¥ï¼ä¹å¸æMSä¸è¦å天ä¸ä¹å¤§ä¸æï¼åæä¸å¥èªå·±çJSæ åãå¨WM 6.5ä¸ï¼Mobile IEè½ç¶æä¸éçè¿æ¥ï¼ä½åæ°çåºç¨è¿æ¯è¿è¿ä¸å¤çï¼å¸æMSå¨WMä¸è½å°ä¸ç¹æè¢æ¨¡ä»¿ï¼å¤ä¸ç¹åæ°æ§é©å½æ§çåºç¨ãå¦å¤ï¼Androidéæ sqlLite,è¿æ ·å¾å®¹æè½å¤é åçåä¸äºå¤æçä¿¡æ¯å¤çåºç¨ï¼å æ¬Androidä¸SMSï¼MAILçä¹é½æ¯ä½¿ç¨SQLLITEï¼WMç SQLSERVERæ¯è¾èµ·æ¥è¿æ¯æç¹å¤§ï¼ä»¥åå¸æWMç´æ¥éæè¿å»ï¼å¹¶ä¸æ¨åºä¸å¥ç±»ä¼¼äºAndroidçContentProviderï¼å¯¹æ°æ®åºï¼XMLçä¿¡æ¯è½½ä½è¿è¡éä¸ç®¡çååç对象ï¼ï¼è½å¤æ´å æ¹ä¾¿é«æç使ç¨è¿äºä¿¡æ¯è½½ä½ã
äºè®¡ç®
å¨æ¬æ¬¡çMWCä¸ï¼MSæ¨åºäºMy Phoneï¼è¿æ¯ä¸ªå¾å®ç¨çäºåºç¨ï¼å¯¹äºAndroidä¸WMæ¥è¯´ï¼è®¨è®ºäºè®¡ç®å¹¶æ²¡æ太å¤æä¹ï¼è¿éåªæ¯æ³è¯´googleä¸MSçç«äºï¼å¯¹äºGoogleæ¥è¯´ï¼å·±åºç Androidæªæ¥è¯å®ä¼è·å¾googleç移å¨ç²¾ç¡®æç´¢ï¼googleå°å¾çäºè®¡ç®çæ¯æï¼å¯¹äºMSæ¥è¯´è¿äºé½æ¯çæ¿ï¼å¸æMS赶紧æyahooæç´¢æå®ï¼å°æ¥ææºæå¡ææ¯çéï¼ä¹è®¸Androidä¸WMé½ä¼éåæä¸ä¸ªå¸¦çæµè§å¨çOSï¼é£ä¸ªæ¶åï¼ææ¯MSä¸googleæ»æææ¿ççæ¶åã