AndroidÀ³¥Îµ{¦¡¶}µo³t¦¨¯Z §@ªÌ¡G±i¤¯®p / »OÆW¤j¾Ç¤uµ{¬ì¾Ç¤Î®ü¬v¤uµ{¬ã¨s©Ò¬ã¨s¥Í «e¨¥¡G ÀHµÛ¶}©ñ¦¡¨t²Îªº¿³°_¡AAndroid §@·~¨t²Î¤w³vº¥Åܦ¨¥D¬y¡A¥þ¥@¬É¤w¸g¾Ö¦³¶W¹L 40%ªº¨Ï¥ÎªÌ¡C³z¹L¥»¤å³¹§Æ±æ¥i¥H¸ò¤j®a¤À¨É¦p¦ó¦bµu®É¶¡¤º¶}µo¤@ÓAndroid À³¥Îµ{¦¡¡C ¥»¤å±N¤À¦¨¥H¤U5¤j³¡¥÷°µ¤¶²Ð¡G - Android ²¤¶
- ¶}µoÀô¹Ò
- ¶}µo¤u¨ã¤§¤¶²Ð
- Activity ¤¶²Ð
- µ{¦¡¶}µo
- Phonegap - JQueryMobile Android ²¤¶ Android¬O¤@ºØ¥HLinux¬°°ò¦ªº¶}©ñì©l½X§@·~¨t²Î¡A¥Dn¨Ï¥Î©ó«KÄâ¸Ë¸m¡CGoogle¦b2008¦~µoªí¤FAndroidªº²Ä¤@Óª©¥»¡C¥Ø«e¥«±¤WªºAndroid¤w¶}µo¥X³\¦hª©¥»¡A³o¨Çª©¥»¤À§O¥Î¤F¤£¦Pªº²¢ÂI¦W¦r°µ¬°¥Nªí¡CµM¦Ó¡A¦b¤é±`¥Í¬¡¤¤¡A«Ü¦h¤HÅ¥¨ì³o¨Ç²¢ÂIªº¦W¦r«o¤£ª¾¹D³o¨Ç¦W¦r¥Nªí¤°麽¡C¦bFigure 2¡A¦³¬Û¹ïÀ³ªºCodename¡A¥»Oversion¡A»PAPI version¡C §Ṳ́]¤£Ãøµo²{¡A¨CÓª©¥»¦WºÙªº²Ä¤@Ó¦r±Æ§Ç¤U¨Ó¡A«ê¦n¸ò¦r¨å¤¤¦r¥Àªº¶¶§Ç¬Û¦P¡A¨Ã¥H¦¹§@¬°¥Nªí¡C¨Ò¦p¡GBeta¥NªíB¡A Cupcake ¥Nªí C¡A¨Ì¦¹Ãþ±À¡C ¥Ø«e¥«±¤WªºAndroidª©¥»¥HAndroid 2.2¤À§G³Ì¦h¡A¦]¦¹¡A±µ¤U¨Óªº¶}µo½d¨Ò³£·|¥H2.2ªºª©¥»¬°¥D¡C ¡@ ¶}µoÀô¹Ò ¶}µoAndroidªºÀ³¥Îµ{¦¡¥Dn»Ýn¥H¤U¥|Ó¶}µo¤u¨ã¡C 1. JDK (Java Development Kit) ©Ò¦³ªºAndroid À³¥Îµ{¦¡³£¬O¥ÎJava¼g¡A¦Ó JDK¬O¨CÓ¶}µoJavaµ{¦¡ªº¥²n¤u¨ã¡C¥i¥H¨ì¡G http://www.oracle.com/technetwork/java/javase/downloads/index.html ¤U¸ü³Ì·sªºª©¥»¡CFigure 4¬°¤U¸üµe±¡G¡]¿ï¨ú¹Ï¤¤¬õ¦â®Ø®Ø¿ï¨úªº®M¥ó¡^¤U¸ü§¹«á¡A´N¥i¥H¦w¸Ë¨ì±zªº¹q¸£¡C 2. Android SDK ½Ð«ö·Ó±zªº¹q¸£§@·~¨t²Î¨ì¡Ghttp://developer.android.com/sdk/index.html ¤U¸ü³Ì·sªºAndroid¶}µo¤u¨ã¨Ã¦w¸Ë¨ì±z¹q¸£ (Figure 5)¡C³o¬O¶}µoAndroid³Ì®Ö¤ßªº¤u¨ã¡C Tips¡G¦b¦w¸ËAndroid SDK¡A¤]³\±z·|¸I¨ì Java SDK not found ªº°ÝÃD(Figure 6)¡C¤£¹L¤£¥Î¾á¤ß¡A¤£¬O±zªº°ÝÃD¡A¬OAndroid SDK¦Ü¤µ¤´¥¼¸Ñ¨Mªº¤@Ó¤pbug¡C¦bWindows 7 »P Windows XP³£·|¸I¨ì³oÓ°ÝÃD¡C¸Ñ¨M¤èªk¨ä¹ê«Ü²³æ¡A¥un«ö ¤W¤@¨B [ Back ] µM«á¦A«ö¤U¤@¨B [Next] ´N¥i¥H¤F¡C 3. Eclipse ¬O¤@Ó»²§Uµ{¦¡¶}µo¤Hû¶}µo³nÅ骺À³¥Î³nÅé¡C³oÓ³nÅé¥i¥H¨ì http://www.eclipse.org/downloads/ ¤U¸ü¡C³oÓ³nÅ餣»ÝnÄé¡Aª½±µ¸ÑÀ£ÁY¨ì§A¹q¸£´N¥i¥H¶}©l¨Ï¥Î¡C 4. Android ADT ¬O¤@Ó¶}µoAndroid ªºEclipse ªº®M¥ó¡A©Ò¥H³oÓ³nÅén¦bEclipse¤W¦w¸Ë¡C ½Ð¦b EclipseªºHelp ¡÷ Install New Software ¡÷ Add¡A ¨Ã¶ñ¤J Name : Android Location : https://dl-ssl.google.com/android/eclipse/ ¤U¤@¨B«K·|Åã¥Ü¥i¥Îªº¤u¨ã¡C½Ð±N "©Ò¦³ªº¿ï¶µ" ¥´¤Ä (Figure 8)¡C ¦w¸Ë§¹«á¡AEclipse¥²¶·«·s±Ò°Ê¡C±µµÛ¡A§ÚÌ¥²¶·§â¤w¸g¦w¸Ë¦nªºAndroid SDK¸òEclipse°µ³s±µ¡C¦b Eclipseªº Window ¡÷ Preferences ¡÷ Android ¡÷ SDK location ¡÷ ±z¦w¸ËAndroid SDKªº¦a¤è ¡@ Android ¶}µo¤u¨ã Android SDK´£¨Ñ«Ü´Îªº¥\¯à¡A³o¨Ç¥\¯à¥i¥HÅý¶}µoªÌ§ó¤è«Kªº¶}µoAndroid À³¥Îµ{¦¡¡C • Android emulator: Y±z¨S¦³Android¤â¾÷¡AAndroid SDK ¦³´£¨Ñ¤@Ó²£¥ÍAndroidµêÀÀ¾÷ªº¥\¯à¡C³oÓµêÀÀ¾÷¥i¥H¼ÒÀÀ¤@¯ë¤â¾÷ªº°ò¥»¥\¯à¡A¨Ò¦p¡G¥´¹q¸Ü¡A±H²°T¡A¦w¸ËÀ³¥Îµ{¦¡¡AGPS¡Aµ¥µ¥¡C¥i¨Ì¥H¤U¨BÆJ²£¥ÍAndroidµêÀÀ¾÷¡G ½Ð¦bEclipse ¡÷ ¡÷ Virtual devices ¡÷ New ¡÷ Name : µêÀÀ¾÷ªº¦W¦r Target : µêÀÀ¾÷¨Ï¥Îªº¥»Oª©¥»¡C SD Card : µêÀÀ¾÷ªº°O¾Ð¥d®e¶q¡C Snapshot : ¥Î¨ÓÀx¦sµêÀÀ¾÷Ãö¾÷«eªº³Ì«áª¬ºA¡CÅý¤U¤@¦¸¶}¾÷ªº®ÉÔ¡A¥i¥H ÅýµêÀÀ¾÷§ó§Öªº±Ò°Ê¡A¨Ã«ì´_¨ì¤W¤@¦¸³Ì«áÃö¾÷ªºª¬ºA¡C Built-in : µêÀÀ¾÷ªº¿Ã¹õ¤j¤p¡C«Øij¨Ï¥ÎHVGAªº¤j¤p¡CY¿ï¥Î¤Ó¤jªº¿Ã¹õ¡]¨Ò¦p¡GWVGA 800¡^·|¶W¹L¤@¯ëµ§°O«¬¹q¸£¿Ã¹õªº°ª«×¡]768¡^¡C¶V¤jªº¿Ã¹õ¬Û¹ï¦Ó¨¥¡A¤]·|»Ýn§ó¦hªº¸ê·½¡C Tips: ¦b²Ä¤@¦¸²£¥ÍµêÀÀ¾÷ªº®ÉÔ¡A¤]³\·|¸I¨ìError ¦p : Files\Android\android-sdk-windows\tools/emulator-arm.exe. Hint: use '@foo' to launch a virtual device named 'foo'. Please use -help for more information. ½Ð±NEclipse¤WªºSDK Location ¥Ñ C:\Program Files\Android\android-sdk §ï¬° C:\PROGRA~1\Android\android-sdk (Figure 10) ©óµe±¥ª¤W¨¤¥i¬Ý¨£ 5554:myAndroid2.2 ªº¦r¼Ë ¡A¨ä¤¤5554¬O³oÓµêÀÀ¾÷ªº¹q¸Ü¸¹½X¡C±z¥i³z¹L²£¥Í¥t¥~¤@ÓµêÀÀ¾÷¡A¨Ã¥´¨ì5554³oÓ¸¹½X¡A¨Ó¼ÒÀÀ¼·¡þ±µ¹q¸Üªº¥\¯à¡C ¥t¥~¡AEclipse¤]¦³´£¨Ñ¤@ÓµêÀÀ¾÷±±¨îªº¥\¯à¡C ½Ð¦bEclipse ¡÷ Window ¡÷ Show View ¡÷ Other ¡÷ Android ¡÷ Emulator Control ³z¹L³oÓEmulator Control ¥i¥H¼ÒÀÀ¼·¥´¹q¸Ü¡B²°T¶Ç°eªº¥\¯à¡A¥H¤ÎGPSªº³]©w¡C • ±M®×¶}µo ²£¥Í¤@Ó·sªºAndroid±M®×¡C Eclipse ¡÷ File ¡÷ New ¡÷ Android Project Figure 12 »¡©ú¡G Project name : ±M®×¦WºÙ¡C³oÓ¦WºÙ¤£·|Åã¥Ü¦b§Aªºappùر¡C Target name : À³¥Îµ{¦¡ªºAPIª©¥»¡C Application name : À³¥Îµ{¦¡ªº¦WºÙ¡C Package name : µ{¦¡½Xªºclass name¡C Create Activity ¡GÀ³¥Îµ{¦¡ùرªºµ{¦¡½X¶i¤JÂI¡C Min SDK Version : ¦w¸Ë³oÓÀ³¥Îµ{¦¡©Ò»ÝªºAndroid³Ì§C»Ý¨D¡C ª`·N¡G¦b³oÓ½d¨Ò¤¤¬O8¡A©Ò¥H¦b8¥H¤UªºAPIª©¥»µLªk¦w¸Ë³oÓÀ³¥Îµ{¦¡¡C ¡@ ¡@ Figure 13¬°Android²£¥Í¥X¨Óªº±M®×¡C¦bµ{¦¡·í¤¤¦³¤@ÓClass Name¥s°µ HelloworldActivity¡A¥L¬O¥ÑActivity Ä~©Ó¥X¨Óªº¡]¬õ¦â®Ø®Ø¤¤¡^¡CActivity¬O¨CÓÀ³¥Îµ{¦¡ªº¶i¤JÂI¡A´N¦p¦PC/C++ªºmain¡Aµ{¦¡²Ä¤@¦¸°õ¦æ³£·|±q³o¸Ì¶}©l¡C¤@ÓActivity¦³¤À¦¨«Ü¦hª¬ºA¨Ò¦p¡GonCreate¡AonStart¡A onResume¡AonPause¡Aµ¥µ¥¡C¦b¤U¤@³¹¸`·|§ó²`¤Jªº¤¶²ÐActivity¡C³oÓ²£¥Í¥X¨Óªº±M®×¬O¥i°õ¦æ¥B¤]¦³µe±ªº¡A¥un¦b±zªº±M®×¤W¡A«ö¤U·Æ¹«¥kÁä¡Arun as ¡÷ Android application¡AEclipse´N¥i¥H¦Û°Ê±Ò°ÊAndroidµêÀÀ¾÷¨Ã§â³oÓÀ³¥Îµ{¦¡¿N¶i¥h¡C ¡@ Activity¤¶²Ð ³oÓª¬ºA¬yµ{¹Ï¬O¥Î¨Ó´yzÀ³¥Îµ{¦¡¦b°õ¦æ¹Lµ{¤¤©Ò¸g¹Lªºª¬ºA¡C onCreate ¡G¬O¤@ÓActivity¶}©l±Ò°Êªºª¬ºA¡C¦b³oÓ³o¸Ì¡AAndroid·|À°§A³B²z»P·Ç³ÆÀ³¥Îµ{¦¡©Ò¥Îªºªº¸ê·½¡A¨Ò¦p ¡G¹Ï®×¡Aµe±¡Aµ¥µ¥¡C onStart ¡G³oÓª¬ºA¥Nªí©Ò¦³ªº¸ê·½³£¤w¸g·Ç³Æ¦n¤F¡CActivity¨ì¤F³oÓª¬ºA¡A¨Ï¥ÎªÌÁ٬ݤ£¨ìµe±¡C onResume ¡G©Ò¦³ªº¸ê·½»PUI¤w¸gÅã¥Ü³B²z¡A¨Ï¥ÎªÌ¥i¥H¶}©l±±¨î³oÓÀ³¥Îµ{¦¡¡C onPause ¡G¬OÀ³¥Îµ{¦¡¤w¸g³Q¼È°±¡C³Q¼È°±ªºì¦]¦³¨âÓ¥i¯à©Ê¡G ²Ä¤@¡A¨Ï¥ÎªÌ¶}©l±Ò°Ê§OªºActivity¡A¦]¦¹Â÷¶}³oÓÀ³¥Îµ{¦¡¡C ²Ä¤G¡A¦³§OªºActivity¬ðµM±Ò°Ê¡C¨ä¤¤³Ì±`¨£ªºª¬ªp´N¬O¡A·í¦³¹q¸Ü¨Ó®É¡A쥻ªºÀ³¥Îµ{¦¡·|³Q»\±¼¡C onDestroy ¡G¥Nªí§AªºActivityn³Q°±¤î¤F¡C onPause¸òonStopªºª¬ºA¬Û¦ü¡A°ß¤@ªº®t§O¦b©ó³B©óonPauseªºª¬ºA®É¡A¨Ï¥ÎªÌ¤´¥i¥H¬Ý±o¨ìµe±¡F¦Ó¦bonStopªºª¬ºA®É¡A¨Ï¥ÎªÌ¤w¸g§¹¥þ¬Ý¤£¨ìµe±¤F¡C ·í³B©óonPause©ÎonStopªºª¬ºA®É¡AYmemory¤£¨¬¡Aprocess«Ü¦³¥i¯à·|³QAndroid±j¢°±¤î¡C¨Ï¥ÎªÌYn¦A¦^¨ì³oÓÀ³¥Îµ{¦¡¡A¥²¶·n«·s¶}©l¶]¡]onCreate¡^¡C ¤@Ó¦nªºÀ³¥Îµ{¦¡·|¥Ñµ{¦¡³B²zactivityªº°µªk¨Ó¨M©w¡CÄ´¦p»¡¡G¤@Ó¹CÀ¸À³¥Îµ{¦¡¡A¦bonPauseªºª¬ºA®É¡Aµ{¦¡¥²¶·n§âª±®a³Ì«áªº¹CÀ¸ª¬ºAÀx¦s°_¨Ó¡AÁקKµ{¦¡³Q¢°±¤îªº®ÉÔ¡Aª±®a¥¢¥h¥L¤§«e©Òª±ªº¬ö¿ý¡C¥ç©ÎªÌ·í¦³¨Ï¥Î¨ìGPS¥\¯àªºÀ³¥Îµ{¦¡®É¡Aµ{¦¡¦bonPauseªºª¬ºA´N§âGPSªº¥\¯à°±¤î¡A¦]¬°GPSªº¥\¯à«D±`¯Ó¶O¹q¤O¡C ¥H¤U¬O¥i¥H¥[¨ìActivityªºµ{¦¡¤ù¬q¡G µ{¦¡¶}µo ¨ì¤F³oÓ³¹¸`¡A¤]³\±z·|ı±oAndroid Apiªºª©¥»³o»ò¦h¡]1.5 , 1.6 , ¡K¡^¡A¹ïJava¤S¤£¼ô±x¡A«ç»ò¥i¯à¦b¨âÓ¤p®É¤º¶}µo§¹¦¨¤@ÓÀ³¥Îµ{¦¡©O¡H¦A¥[¤W³]p¤@ÓAndroid À³¥Îµ{¦¡ªºUI«Ü½ÆÂø¡A¥²¶·À´Android UIªº¨CÓª«¥ó¡A¬O§_¯uªº¦³¥i¯à§¹¦¨³oÓÁ}Ãøªº¥ô°È¡H´Nºâ¤w¸g¦¨¥\ªº¶}µoAndroidª©¥»ªºÀ³¥Îµ{¦¡¡A¤@´«¨ìiOS¤W±¤Sn«·s¶}©l¾Ç¡A¦³¨S¦³¤èªk¯à°÷Åý¤@Óµ{¦¡½X¦b¥ô¦ó¥»O³£¥i¥H°õ¦æ? µª®×¡G¦³¡IPhoneGap¡C 爲¤F¼W¥[¶}µoªº³t«×¡A±µ¤U¨Ó±N·|¬°¤j®a¤¶²ÐPhoneGap¡CPhoneGap·|³z¹LJavaScript §ì¨ú¤@¨Ç Android ´£¨ÑªºNative API¡C爲¤°麽¤@©wnJavaScript©O¡H¦]¬°JavaScript¦b¥ô¦ó¥»O¤W°õ¦æ³£¯à¦³¬Û¦Pªºµ²ªG¡C³z¹LPhoneGapªºAPI¡A§ÚÌ´N¥i¥H¨Ï¥ÎNative APIªº¥\¯à¡A¨Ã¥BÅý¤@¥÷JavaScriptªºµ{¦¡¡A¦b¥ô¦ó¥»O¤W³£¥i¥H°õ¦æ¡C §ÚÌ¥i¥H§Q¥ÎHTML·í°µ§Ú̪ºUI¡AµM«á§Q¥ÎPhoneGap¥h§ì¨ú¤â¾÷ªº¤@¨Ç¸ê°T¡C³o¼Ë§ÚÌ´N¥i¥H§â³]pUIªº®É¶¡¬Ù¤U¨Ó¡A¦Ó¥BPhoneGapªºAPI «D±`²³æ¡A´N¸ò¤@¯ëªºJavaScriptµ{¦¡¤@¼Ë¡C • PhoneGapÀô¹Ò³]©w¡C «Ø¥ß¤Tӥؿý¦b±zªºEclipse±M®×ùر¡C /libs /assets/www /res/xml • §âPhoneGapªºÀɮשñ¨ì¤W¨BÆJ«Ø¥ßªº¥Ø¿ý¡C ½Ð¨ì http://www.phonegap.com/download/ ¤U¸ü¡C phonegap.jar ©ñ¨ì /libs phonegap.js ©ñ¨ì /assets/www plugins.xml ©ñ¨ì /res/xml¡C • §â¼g¦nªº½d¨Ò index.html©ñ¨ìassets/www index.html µ{¦¡¤ù¬q¡C • §â쥻ªº ¡§extends Activity¡§ §ï¦¨¡¨extends DroidGap¡¨¡C §â setContentView() §ï¦¨super.loadURL(¡§file///android_asset/www/index.html¡¨); ¦A¥[¤W¤@¦æ import com.phonegap.*;(Figure 14) ¡@ • §â¥H¤Uªºµ{¦¡½X©ñ¨ìAndroidManifest.xml (Figure 15) • ¨Ã±N android:configChanges="orientation|keyboardHidden ©ñ¨ì activity ªº¼ÐÅÒùر §¹¾ãªºphonegap½d¨Òµ{¦¡µ²ªG ¡G http://www.youtube.com/watch?v=fbQLKzboui8 ¦b¶}µo¹Lµ{¡A¤]³\³]p¥X¨ÓªºHTML UI¤]³\¤£¾A¦X¦b¤â¾÷¤WÅã¥Ü¡C¦]¦¹§ÚÌ¥i¥H§Q¥ÎJQuerymobile¥h³]p§ÚÌÀ³¥Îµ{¦¡ªºUI¡CJQuerymobile¬O¤@Ó§K¶O³nÅé¡A±Mªù³]pUI ªºJavaScript library¡C¥un³z¹L¥L̤w¸gq¦nªº®æ¦¡¡A±zªºHTML«K¥i¾Ö¦³©M¤â¾÷¸Ì±¬Û¦üªºµe±¡C¥L¤£¦ý©M¤â¾÷¸Ì±¬Û¦üªºµe±¡A¦b¨C¶¸õ¶¤§¶¡¤]·|¦³¤@¯ë¤â¾÷ªº°Êµe®ÄªG¡C¦Ó¥BJQuerymobile ¤]¦³°w¹ïIJ±±ªºµe±³]p°µ³Ì¨Î¤Æ¡C ¥i¥Ñ¦¹ºô§}¡Ghttp://jquerymobile.com/demos/1.0b2/°Ñ¦Ò½d¨Ò¡C µ²½× ³z¹L PhoneGap ¥[¤W JQuerymobile §Ṳ́£»ÝnÁA¸ÑAndroid API«ç»ò¼g¡A§ó¤£»ÝnÁA¸ÑAndroid UI¬O«ç»ò³]pªº¡C¥u³z¹LHTML + JavaScript¡A§Ú̪ºµ{¦¡³£¥i¥H¸ò Android ªº native app ¨ã¦³¦P¼Ëªº®ÄªG¡C¨Ã¥B¥i¥H¦b«Üµuªº®É¶¡¤º¡A¶}µo¥X¥i¥H¸ó¥»OªºÀ³¥Îµ{¦¡¡C °Ñ¦Ò¤å¥ó [1] http://en.wikipedia.org/wiki/Mobile_operating_system [2] http://developer.android.com/resources/dashboard/platform-versions.html |