ÀÖÓãµç¾º

½ÌÓýÐÐÒµA¹ÉIPOµÚÒ»¹É£¨¹ÉƱ´úÂë 003032£©

È«¹ú×Éѯ/ͶËßÈÈÏߣº400-618-4000

AndroidÅàѵʵս½Ì³Ì֮ʹÓÃCordova¿ò¼Ü¿ª·¢Android Hybrid App

¸üÐÂʱ¼ä:2015Äê12ÔÂ28ÈÕ14ʱ52·Ö À´Ô´:ÀÖÓã²¥¿ÍAndroidÅàѵѧԺ ä¯ÀÀ´ÎÊý:

1.1. Hybrid App½éÉÜ

Ëæ×ÅHtml5µÄÐËÆðÒÔ¼°ÊÖ»úÓ²¼þÐÔÄܵÄÌáÉý£¬Ô½À´Ô½¶àµÄÒÆ¶¯Ó¦ÓòÉÓÃWeb¼¼Êõ½øÐпª·¢£¬´Ó¶ø²úÉúÁËÒ»ÖÖеÄÓ¦ÓýÐHybrid App£¨»ìºÏÐÍÒÆ¶¯Ó¦Óã©¡£ËùνµÄ»ìºÏÄ£Ê½ÒÆ¶¯Ó¦Óã¬ÊÇÖ¸Ò»ÖÖ½éÓÚNative App(±¾µØÔ­ÉúÓ¦ÓÃ)ÓëWeb App (ÍøÒ³Ó¦ÓÃ)Ö®¼äµÄÓ¦Ó㬸ÃÀàÓ¦ÓõĿª·¢³ýÁËʹÓõ½±¾µØÆ½Ì¨¿ª·¢¼¼Êõ£¨Android¡¢iOS¡¢ BlackBerryµÈ£©Í⣬²¿·Ö¹¦ÄÜ»¹Ê¹ÓÃÁËWeb¼¼Êõ£¬Í¨¹ýÄÚǶä¯ÀÀÆ÷ÏÔÊ¾ÍøÒ³µÄ·½Ê½À´ÊµÏÖ£¬Ä¿Ç°ÊÐÃæÉϺöàÒÆ¶¯Ó¦Óö¼ÊÇ»ìºÏÐ͵Ä£¬ÏñQQ£¬Î¢ÐÅ£¬Ö§¸¶±¦£¬ÌÔ±¦µÈ¡£

1.2. Hybrid AppÌØµã

    Óë±¾µØÔ­ÉúÓ¦ÓÃÏà±È£¬»ìºÏÐÍÓ¦ÓÃÓÐÁ½¸öÖ÷ÒªµÄÓÅÊÆ£ºÒ»¸öÊÇ¿çÆ½Ì¨£¬²»ÓÃÔÙÕë¶Ô²»Í¬µÄÒÆ¶¯Æ½Ì¨½øÐпª·¢£¬´ó´ó½µµÍÁË¿ª·¢µÄ³É±¾£»ÁíÍâÒ»¸öÊÇÉý¼¶Î¬»¤±äµÃÈÝÒ׺ͼòµ¥£¬Ö»Ðè¸üÐÂÍøÒ³¼´¿É£¬²»ÐèÒªÓû§ÖØÐÂÏÂÔØ°²×°°ü½øÐÐÉý¼¶£»²»×ãµÄµØ·½±íÏÖÔÚËٶȺÍÓû§ÌåÑéÉÏ£¬µ«Ëæ×ÅÒÆ¶¯Ó²¼þÐÔÄܵÄÌáÉý£¬Õâ¸ö²î¾àÕýÔÚÖð½¥ËõС¡£
¡¡¡¡ Web App£¨ÍøÒ³Ó¦Óã© Hybrid App£¨»ìºÏÐÍÓ¦Óã© Native App£¨Ô­ÉúÓ¦Óã©
¿ª·¢³É±¾ µÍ ÖÐ ¸ß
ά»¤¸üР¼òµ¥ ¼òµ¥ ¸´ÔÓ
ÌåÑé ²î ÖÐ ÓÅ
°²×° ²»ÐèÒª ÐèÒª ÐèÒª
¿çƽ̨ ÓÅ ÓÅ ²î
ͼ1£ºWeb App¡¢Hybrid App¡¢Native App Ö®¼äµÄ¶Ô±È

1.3. »ùÓÚCordova½øÐÐHybrid App¿ª·¢

ÄÇô£¬ÈçºÎ¿ìËٵظßЧµØ¿ª·¢ÕâÖÖ»ìºÏÐÍÓ¦ÓÃÄØ£¿Ä¿Ç°Óв»ÉÙÓÃÓÚ¿ª·¢Hybrid AppµÄÒÆ¶¯¿ª·¢¿ò¼Ü£¬±ÈÈçPhoneGap/Cordova¡¢WeX5¡¢APICloud¡¢Appcelerator¡¢ExMobiµÈ¡£±¾ÎÄÖ÷Òª½éÉÜÈçºÎʹÓÃPhoneGap/Cordova¿ò¼ÜµÄ½øÐÐHybrid AppµÄ¿ª·¢£¬ÏÂÃæÏÈÁ˽âÒ»ÏÂPhoneGapÓëCordova¡£

1.3.1.        PhoneGapÓëCordova

   PhoneGapÊÇÒ»¸öʹÓÃWeb¼¼Êõ£¨HTML£¬CSSºÍJavaScript£©¿ª·¢¿çÆ½Ì¨ÒÆ¶¯Ó¦ÓõÄÃâ·ÑÇÒ¿ªÔ´¿ò¼Ü£¬Ä¿Ç°ºÜ¶àÖ÷Á÷µÄÒÆ¶¯¿ª·¢¿ò¼Ü¾ùÔ´ÓÚPhoneGap£¬±ÈÈçWeX5¡¢appMobi¡¢WorklightµÈ¡£¶øÒªÁ˽âCordova£¬µÃÏÈÁ˽âÒ»ÏÂPhoneGapµÄһЩ±³¾°£º
    PhoneGap¿ò¼ÜµÄÆðÔ´ÓÚ¼ÓÄôóÒ»¼Ò½ÐNitobiµÄÈí¼þ¹«Ë¾£¬08ÄêÒ»´ÎiOS¿ª·¢Õß´ó»áÉÏ£¬¸Ã¹«Ë¾µÄ¼¸¸öÈËÌá³öÒ»¸öÏë·¨£ºBridging the gap between the web and the iPhone sdk£¬Ïë×öÒ»¸ö¹¤¾ßÀ´ÃÖ²¹WebºÍiOS¿ª·¢Ö®¼äµÄ²»×㣬ÕâÊÇPhoneGapÃû×ÖµÄÀ´Ô´¡£
    2011Äê10Ô£¬AdobeÊÕ¹ºÁË´´Á¢PhoneGapÏîÄ¿µÄNitobi¹«Ë¾£¬Ëæºó°ÑPhoneGapÏîÄ¿¾è¸øÁËApache»ù½ð»á£¬µ«Adobe±£ÁôÁËPhoneGapµÄÉ̱êËùÓÐȨ¡£¹ÊÏîÄ¿µ½ÁËApacheÆìÏ£¬¸ÄÁ˸öÃû×Ö½ÐApache Callback£¬ÒòΪÃû×ÖºÁÎÞÐÂÒ⣬ºóÀ´ÓÖ×÷ÁËÒ»´Î¸ÄÃû£¬¼´ÏÖÔÚµÄApache Cordova¡£CordovaÊÇNitobiÍŶӵ±Ê±×øÂäµÄ½ÖµÀÃû³Æ£¬ÓôËÃûÀ´¼ÍÄîNitobiÍŶӵűÏס£
µ½´Ë£¬ÎÒÃDz¶àÁ˽âPhoneGapÓëCordovaÖ®¼äµÄ¹ØÏµÁË£ºCordovaÊÇAdobe¹«Ë¾°ÑPhoneGap¾è¸øApacheºóÐÂÆðµÄÃû×Ö£¬Ëü×÷Ϊһ¸ö¿ªÔ´ÏîÄ¿£¬ÊÇ´ÓPhoneGapÖгéÈ¡³öÀ´µÄºËÐÄ£¬CordovaÓëPhoneGapµÄ¹ØÏµ¾ÍÀàËÆÓÚWebKitÓëChrome»òSafariµÄ¹ØÏµ¡£
 

1.3.2.»ùÓÚCordova¿ª·¢Hybrid App

Á˽âÍêCordovaÖ®ºó£¬ÏÂÃæ¿ÉÒԴ»·¾³£¬ÊµÏÖÎÒÃǵÄÀý×ÓÁË¡£

1.3.2.1.       Cordova¿ª·¢×¼±¸¹¤×÷

1.3.2.1.1.     °²×°nodeJS
   ¹ÙÍøÏÂÔØµØÖ·£ºhttps://nodejs.org/
   CordovaÊÇÀûÓÃnodeJS½øÐйÜÀíµÄ£¬ËùÒÔÐèÒªÏÈÏÂÔØnodeJS¡£ÏÂÔØ°²×°Íêºó£¬ÔÚcmdÖÐÊäÈënpm -version£¬Èç¹û¿´µ½°æ±¾ºÅÔò±íʾ°²×°³É¹¦ÁË£¬ÈçÏÂͼËùʾ£º
    NPMµÄÈ«³ÆÊÇNode Package Manager£¬ÊÇÒ»¸önodeJS°ü¹ÜÀíºÍ·Ö·¢¹¤¾ß£¬ÒѾ­³ÉΪÁ˷ǹٷ½µÄ·¢²¼NodeÄ£¿é£¨°ü£©µÄ±ê×¼¡£nodeJSÌṩÁËһЩ»ù±¾Ä£¿é£¬µ«½ö½öÒÀ¿¿ÕâЩ»ù±¾Ä£¿é¿ÉÄÜ»¹²»ÄÜÂú×ãʵ¼Ê¿ª·¢ÐèÇó£¬Òò´Ë»áÓõ½ºÜ¶àµÄnodeJS¿âºÍ¿ò¼Ü¡£µ«ÖÚ¶àµÄ¿â»ò¿ò¼Ü¹ÜÀíÆðÀ´ÓÖºÜÂé·³£¬Òò´ËÓÐÁËNPM£¬Í¨¹ýËü¿ÉÒԺܿìµÄÕÒµ½ÒªÊ¹Óõİü£¬½øÐÐÏÂÔØ¡¢°²×°ÒÔ¼°¹ÜÀíÒѾ­°²×°µÄ°ü¡£  
1.3.2.1.2.     °²×°Cordova
ÔÚcmdÖÐÖ´ÐÐÈçϰ²×°CordovaµÄÃüÁʼ°²×°£º
npm install -g cordova
Ö®ºó£¬Äã¿ÉÄÜÐèÒªµÈ´ýºÜ³¤Ò»¶Îʱ¼ä¡£ÔÚ¹úÄÚʹÓÃNPMÊǺÜÂý£¬¿ÉÄÜÊÇÒòΪGFWµÄÔ­Òò£¬ÎÒÃÇ¿ÉÒÔʹÓÃÌÔ±¦µÄnpm½â¾ö´ËÎÊÌ⣬¾ßÌå²Ù×÷ÈçÏ£º
µÚÒ»²½£ºÃüÁîÐÐÏÂÊäÈ룺
npm config set registry https://registry.npm.taobao.org 
µÚ¶þ²½£ºÔÙÖ´ÐÐÒÔÏÂÃüÁ
npm info underscore  
Èç¹ûµÚÒ»²½ÅäÖÃÕýÈ·£¬Õâ¸öÃüÁîÓ¦¸Ã»áÓÐÀàËÆÏÂÃæµÄÊä³ö£º
½ÓÏÂÀ´ÔÙÖ´ÐÐÉÏÃæ°²×°CordovaµÄÃüÁî¾Í¿ÉÒÔÁË£¬°²×°³É¹¦ºó£¬ÔÚcmdÖÐÊäÈëcordova -vÔò»áÏÔʾÏàÓ¦µÄ°æ±¾ºÅ£¬ÈçÏÂͼËùʾ£º
1.3.2.1.3.     °²×°Apache Ant
ÏÂÔØµØÖ·£ºhttp://apache.fayea.com/apache-mirror/ant/binaries/
ÉèÖû·¾³±äÁ¿£¬Ð½¨£ºANT_HOME=E:\ant\apache-ant-1.9.4 
PathÖÐÌí¼Ó£º%ANT_HOME%\bin;
1.3.2.1.4.     °²×°Android SDK
ÏÂÔØ°²×°Android SDK£¬Ð½¨ANDROID_HOME»·¾³±äÁ¿£¬ÉèÖÃΪsdk°²×°µÄ¸ùĿ¼£¬²¢°ÑsdkÏÂÃæµÄtoolsºÍplatform-toolsÁ½¸öĿ¼ÅäÖõ½»·¾³±äÁ¿pathÖС£
1.3.2.1.5.     ´´½¨CordovaSampleÏîÄ¿
µÚÒ»²½£º½øÈ빤×÷¿Õ¼äĿ¼£¨ÀýÈ磺D:\workspace_cordova£©£¬cmdÖÐÖ´ÐÐÒÔÏÂÃüÁî´´½¨Ò»¸ö½ÐCordovaSampleµÄÏîÄ¿£º
cordova create CordovaSample cn.itcast.cordova CordovaSample 
µÚÒ»¸ö²ÎÊýCordovaSample£¬Ö¸¶¨Ä¿Â¼Ãû³Æ£»
µÚ¶þ¸ö²ÎÊýcn.itcast.cordovaΪJava°üÃû£»
µÚÈý¸ö²ÎÊýCordovaSample Ö¸¶¨ÁËÓ¦ÓóÌÐòµÄÏÔʾ±êÌ⣻
 
µÚ¶þ²½£º½øÈëCordovaSample Ä¿Â¼£º
cd CordovaSample
 
µÚÈý²½£ºÌí¼ÓÏîĿҪ֧³ÖµÄÒÆ¶¯Æ½Ì¨£¨´Ë´¦±íʾÌí¼ÓÖ§³ÖAndroidƽ̨£©
cordova platform add android
 
µÚËIJ½£º°ÑCordovaSample×÷ΪAndroid¹¤³Ìµ¼Èëµ½eclipseÖУº
±àÒëû±¨´í£¬¾Í¿ÉÒÔÔËÐÐÁË£¬Ö´Ðнá¹ûÈçÏÂͼËùʾ£º
ͼ2 CordovaSampleÔËÐнá¹û
 
ÒÔÉϲÙ×÷¿ÉÄÜ»á³öÏÖµÄÎÊÌ⣺ÄãµÄsdkµÄ°æ±¾Ì«µÍ»ò²»Æ¥Å䣬»òÕßÏîÄ¿µ¼Èëµ½eclipeºó±àÒë³ö´í£¬ÕâʱÄãÐèÒª°ÑÄãµÄAndroid SDKÉý¼¶µ½Ò»¸ö±È½Ï¸ßµÄ°æ±¾£¬±ÈÈçandroid 5.0¡£
1.3.2.1.6.     Ìí¼Ó²å¼þÖ§³Ö
    ÈçÉÏͼ2ÎÒÃÇ¿´µ½µÄ£¬CordovaĬÈÏÌṩµÄ³ÌÐò½çÃæºÍ¹¦Äܷdz£¼òµ¥¡£µ±È»Äã¿ÉÒÔ¸ù¾ÝÄãµÄÐèÒª£¬ÔËÐбê×¼Web¿ª·¢¼¼Êõ¶ÔÒ³Ãæ½øÐÐÉè¼Æ¡£µ±ÄãÐèÒªºÍ²»Í¬µÄÉ豸½øÐÐͨѶ½»»¥Ê±£¬Äã¾ÍÐèÒª½èÖúÓÚһЩ²å¼þ£¬ÒÔ±ãÄܹ»·ÃÎÊCordovaÌṩµÄºËÐÄAPI¡£Ò»°ãÀ´Ëµ£¬ÄãÌí¼ÓÒ»¸ö²å¼þµÄÄ¿µÄÊÇΪÁËÀûÓÃCordovaµÄAPI·ÃÎÊÉ豸¡£ÏêϸµÄ¿ÉÓòå¼þÁбíÄã¿ÉÒÔÔÚÉçÇøÖп´µ½:http://plugins.cordova.io
Äã¿ÉÒÔͨ¹ýÒÔÏÂÃüÁî°²×°²å¼þ£¬ÀýÈç:  
cordova plugin add org.apache.cordova.camera    // ÉãÏñÍ· 
cordova plugin add org.apache.cordova.vibration   // Õð¶¯
cordova plugin add org.apache.cordova.contacts    // ÁªÏµÈË
Äã¿ÉÒÔÓÃÒÔÏÂÃüÁî²é¿´ËùÓÐÒѾ­°²×°µÄ²å¼þ
cordova plugin ls 
ʹÓÃÒÔÏÂÃüÁîɾ³ý²å¼þ£º 
cordova plugin rm org.apache.cordova.console

1.3.2.2.       ÔÚÍøÒ³ÖÐʵÏÖÒµÎñÂß¼­´úÂë

ÐÞ¸ÄÏîÄ¿ÖÐassets/www/index.htmlÎļþ£¬ÔÚ<header>ÖÐÒýÈëcordova¿ª·¢¿â£¬²¢ÊµÏÖÒµÎñ´úÂëshowDialog·½·¨£»µ±µã»÷<body>Öеij¬Á´½Óʱ£¬»áµ÷ÓÃshowDialog()·½·¨£¬Ôڸ÷½·¨Öлáµ÷ÓÃcordova sdkµ¯³öandroidÔ­Éú¶Ô»°¿ò£º
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8">
  function showDialog(){
      navigator.notification.alert("ÄãºÃCordova!");
  }
</script>
<title>Hello Cordova</title>
</head>
<body>
  <h1>Hello Cordova</h1>
  <a onClick="showDialog()" href="">ÏÔʾ¶Ô»°¿ò</a>
</body>
</html>
 
Ö´ÐÐÔËÐнá¹ûÈçÏÂͼËùʾ£º
ÖÁ´Ë£¬ÎÒÃÇʹÓÃCordova¿ª·¢Anroid Hybrid AppµÄÀý×Ó¾ÍʵÏÖÍêÁË¡£


±¾ÎİæÈ¨¹éÀÖÓã²¥¿ÍAndroidÅàѵѧԺËùÓУ¬»¶Ó­×ªÔØ£¬×ªÔØÇë×¢Ã÷×÷Õß³ö´¦¡£Ð»Ð»£¡
×÷ÕߣºÀÖÓã²¥¿ÍAndroidÅàѵѧԺ
Ê×·¢£ºhttp://www.itcast.cn/android/
0 ·ÖÏíµ½£º
ºÍÎÒÃÇÔÚÏß½»Ì¸£¡
¡¾ÍøÕ¾µØÍ¼¡¿¡¾sitemap¡¿