×Ô¶¯±àÒë×é¼þ
ĿǰAndroid¿ª·¢µÄÖ÷Á÷¿ª·¢¹¤¾ßÊÇ Eclipse ºÍ IDEA
ĿǰÖ÷Á÷µÄ×Ô¶¯»¯´ò°ü¹¤¾ßʱ ant£¬maven£¬gradle¡£
maven¹¤¾ßÖÐÓÐ×Ô¼ºµÄÒÀÀµ²Ö¿âά»¤£¬ºÜ¶à¿ªÔ´Ö§³Ö°üÔÚÉÏÃæ¶¼ÓÐά»¤£¨¹úÄڵijýÍ⣩
gradleÊǽüÄêÀ´·¢Õ¹ÆðÀ´×Ô¶¯»¯¹¹½¨Ó¦Ó㬽â¾ö ant ¹¹½¨Éϵķ±Ëö´úÂ룬²¢ÇÒÒ²Ö§³Ö¶ÁÈ¡mavenµÄÅäÖÃÐÎʽ£¬ÒÀÀµmavenµÄÖ§³Ö°ü½á¹¹
ºÃÁË£¬Æ½Ê±ÄãÃÇʹÓà eclipse ·¢²¼µÄʱºò£¬²»ÒªËµÄãûÓùý×Ô¶¯¹¹½¨£¬eclipse µÄ androidÏîÄ¿ÊÇÓÃantµÄ¹¹½¨·½Ê½¡£Èç¹ûÄãÒª¼ÓÇþµÀ·¢²¼£¬Äã¾ÍÐèÒª×Ô¼ºÐ´
ant µÄ½Å±¾¡£
maven×Ô¶¯¹¹½¨£¬Ä¿Ç°´ó¶àÊýÓÃÔÚ javaweb ÏîÄ¿£¬°²×¿ÏîÄ¿ÓõIJ»¶à¡£
eclipse µÄ¹¹½¨Ó¦Óôó¶àʹÓà ant£¬maven£¬gradleÒ²ÓÐÏà¹ØÖ§³Ö¡£AndroidµÄÏîĿĬÈÏʹÓÃ
ant ½øÐй¹½¨
ÔÚ IDEA ÖУ¬¿ÉÒÔʹÓà ant ·½Ê½¹¹½¨ androidÓ¦Óã¬Ò²ÄÜʹÓà gradle ·½Ê½¹¹½¨£¬Ä¿Ç°Ö÷Á÷Ö§³Ö¶¼ÊÇ
gradle ·½Ê½¡£
IDEA ĬÈÏʹÓà gradle ¹¤¾ß×ö android µÄ¹¹½¨³ÌÐò£¬ÄãÊÔÊÔÔÚн¨Ó¦ÓõÄʱºòÑ¡Ôñ Application
Module ¶ø²»ÊÇ Gradle:Android Module ¿´¿´£¬Äã»á·¢ÏÖ£¬¹¤³ÌÏîÄ¿ºÍ eclipse
Ã»Ê²Ã´Çø±ð¡£¶øÇÒ°üº¬ ant µÄ½Å±¾Îļþ¡££¨ÈçÏÂͼ£©

Gradle ModuleÔÀí
IDEA Ö§³Ö ant£¬maven£¬gradle ¹¤¾ßÀ´¹¹½¨ÒýÓá£Ä¿Ç° Android Ó¦ÓÃÔÚ asϱàÂë»ù±¾Ê¹ÓÃ
gradle ½øÐй¹½¨£¬±¾Õ½«»ùÓÚÕâ¸ö˼·½²½âÄÇЩÄÚÈÝÊôÓÚ IDEA£¬ÄÇЩÄÚÈÝÊôÓÚ gradle ¡£
Ê×ÏÈ£¬ÎÒÃǽ¨Á¢Ò»¸ö Gradle:Android Module À´¿´¿´ Gradle ÏîÄ¿½á¹¹¡£

µÃµ½µÄĿ¼½á¹¹ÈçÏ£º

ÆäÖиùĿ¼ÊÇÒ»¸öproject£¬ÏÂÃæµÄappĿ¼ÊÇÆäÖÐÒ»¸ömodule¡£

.gradle .idea ÊÇÔÚ·Ö±ðÔÚ gradle £¬IDEA ÔËÐÐʱºò»áÉú³ÉµÄÎļþ£¬Ò»°ãÕâÑùµÄÎļþÒ²²»»áÄÉÈëÔ´´úÂë¹ÜÀíÖ®ÖС£
appÎļþ¼Ð£¬ÊÇÆäÖÐÒ»¸ömodule£¬ÀïÃæµÄÎļþÄÚÈÝÓ븸Àà²î²»¶à£¬ÈôûÓж¨Ò壬ÔòÔÚÏîÄ¿ÖÐʹÓø¸ÀàµÄÉèÖã¨Òâ˼¾ÍÊÇ£¬ÀïÃæÒ²Äܰüº¬build.gradle¡¢gradle.properties¡¢setting.gradle
µÈÏà¹ØgradleÎļþ£¬ÔõôÀí½â£¿Æäʵÿһ²ã¶¼ÊÇÒ»¸ömodule£¬Õû¸öÏîÄ¿ÊÇÒ»¸ö´óµÄ module ¶øÒÑ£©
gradle Îļþ¼Ð£¬ÓÃÓÚ±£´ægradle ÏÂÔØÂ·¾¶µÄÅäÖÃÎļþλÖã¬ÓÃÓÚûÓÐgradle»·¾³µÄ»·¾³³õʼ»¯Ê¹ÓÃ
build.gradle ÏîÄ¿µÄ±àÒë»·¾³ÅäÖ㬱ÈÈçÖÆ¶¨ÏîÄ¿ÒÀÀµµÄlib°ü¡£
gradle.properties ÅäÖÃgradleÔËÐл·¾³µÄÎļþ£¬±ÈÈçÅäÖÃgradleÔËÐÐģʽ£¬ÔËÐÐʱjvmÐéÄâ»úµÄ´óС
gradlew && gradlew.bat ´úÌægradle
ÃüÁîʵÏÖ×Ô¶¯Íê³Égradle»·¾³´î½¨¡£ÅäºÏgradleÎļþ¼ÐµÄÄÚÈÝ£¬»á½µµ½IDEAÈçºÎ´îÅägradlewʹÓá£
local.properties ÅäÖÃandroid NDK£¬SDKµÄµØ·½£¬¶÷£¬·ÇandroidÏîÄ¿¿ÉÄÜûÓÐÕâ¸öÎļþ£¬Õâ¸ö·¾¶¸ù¾Ý²»Í¬ÏëµçÄÔ²»Í¬£¬Ò»°ãÒ²²»»áÄÉÈëÔ´´úÂë¹ÜÀíÖ®ÖУ¬Ò»°ã¿ÉÒÔдһ¸ölocal.properties.simple
Îļþ£¬¸æÖªÐèÒªÐ޸ĸÃÎļþÃû²¢Ð´Éϱ¾µØSDK NDK ·¾¶¡£simpleÎļþÄÉÈëÔ´Âë¹ÜÀíÖ®ÖС£
setting.gradle ×ÓÏîÄ¿°üº¬Îļþ£¬ÉùÃ÷µ±Ç°Ä¿Â¼Ïº¬ÓÐʲômodule£¬µ±È»ÄãµÄappµ×ϼÓÉÏÕâÑùµÄÎļþ£¬Ò²ÄܼÌÐøÔÚappµ×ϼÓmodule¡£ºÍÎÒµÚµã˵µÄ£¬Õû¸öproject¾ÍÊÇÒ»¸ö´óµÄmodule£¬Ã¿¸ömoduleÏÂÃæ»¹Äܰüº¬ÏàÓ¦µÄmodule¡£Èç¹ûÄãÀí½âÕâ¸öÁË£¬ÆäʵappĿ¼µ¥¶À×÷Ϊһ¸öÏîÄ¿¹ÜÀíÒ²ÊÇ¿ÉÒԵ쬣¬°ÑÏàÓ¦µÄÅäÖÃÎļþÅäÉ϶øÒÑ£¬Ï൱ÓÚÖ÷Ŀ¼ӦÓÃ
android µÄgradle plugin £¨ÏÂÒ»µã»á˵µ½Õâ¸ö£©
gitignore ¸ÃÎļþÊÇÔ´Âë¹ÜÀíµÄÅäÖÃÎļþ£¬²»ÔÚ¸ÃÎĽ²½â¡£
¼ÈÈ»gradle ÊǶà moduleÐÎʽ£¬ÄÇôÎÒÃÇÀ´¿´¿´ setting.gradle
ÅäÖõÄÄÚÈÝ

´ÓÉÏÃæÄ¿Â¼µÄÅäÖÃÎļþÄÚÈÝÀ´¿´£¬Õû¸öprojectÒ²ËãÊÇÒ»¸ömodule£¬Èç¹û¸Ämoduleµ×Ï»¹ÓÐmodule£¬¾Í¿ÉÒÔͨ¹ýsetting.gradleÅäÖýøÀ´£¬Ê¹µÃ¸Ãmoduleµ×ϵÄgradle£¬´Óapp
moduleµ×Ï¿ÉÒÔ¿´³ö£¬module×îÉÙÒªº¬ÓÐ build.gradleÎļþ£¬Õâ¸ömoduleµÄÏîÄ¿±àÒëÎļþ£¬¸ÃmoduleÒÀÀµÊ²Ã´²å¼þ¶Ô¸ÃĿ¼½øÐбàÒë¶¼ÔÚ´ËÅäÖ㬱ÈÈçandroidÓëandroid-library£¬ÆäËûÄÚÈݿɼ̳и¸ÀàµÄ
Gradle Óë IDEA µÄ¹ØÁªÐÔ
ÉÏÃæ½éÉÜÁËgradleÏîÄ¿µÄĿ¼½á¹¹£¬ÒÔ¼°moduleµÄģʽ£¬½ÓÏÂÀ´£¬Á˽âÒ»ÏÂIDEAÈçºÎÓëgradleÏîÄ¿¹ØÁªÉÏÀ´µÄ¡£
ideaµÄÏîÄ¿£¬ÔÚ½¨Á¢»òÕßµ¼ÈëµÄʱºò£¬¾ÍÒѾȷ¶¨ËûÊÇ»ùÓÚʲô×Ô¶¯¹¹½¨¹¤¾ßµÄÏîÄ¿¡£Ð½¨µÄʱºò£¬Ê¹Óà gradle
androiw module ˵Ã÷ËûÊÇ gradle ×Ô¶¯¹¹½¨µÄÏîÄ¿£¬ÄÇôµ¼ÈëµÄʱºòÒ²ÊÇÒ»Ñù¡£ÎÒÃÇ¿´¿´ÏÂÃæµÄÏîÄ¿µ¼Èëͼ£¬ÔÚÑ¡ÔñÏîÄ¿µØÖ·Ö®ºó£¬ÎÒÃÇ¿´µ½Ò»ÏµÄÄÚÈÝ¡£

Èç¹ûÄãµÄÏîÄ¿ÀïÃæ°üº¬ÁËgradleµÄÏà¹ØÎļþ£¬¾Í¿ÉÒÔÑ¡Ôñ import project form external
model µ¼ÈëIDEAÁË£¬Èç¹ûÏîĿֻÓÐÔ´Â룬ûÓаüº¬×Ô¶¯¹¹½¨µÄÏà¹ØÐÅÏ¢£¬ÄãÖ»ÄÜÑ¡Ôñ Create project
form existing sources ÁË£¬ÈÃËûÉú³É×Ô¶¯¹¹½¨¹¤¾ßÐèÒªµÄÎļþ¡£
Äã¿ÉÄÜ»áÏ룬ÏëgradleÀïÃæµÄÒÀÀµ°ü£¬ÎÒ²»ÖªµÀÓÐÄÄЩ£¬Ôõô°ì¡£ºÃ°É£¬Äã˽ÏÂÀï¾ÍÂîÂî×÷Õß°É£¬ÉÏ´«ÁËÔ´Âë²»ÉÏ´«×Ô¶¯¹¹½¨Ïà¹ØµÄÎļþ£¬µ¼ÖÂÏîÄ¿ÒÀÀµ²»ÍêÕû£¬»¹µÃÕÒ×ÊÁÏ×Ô¼ºÍêÉÆ£¬ËùÒÔÕâÀïҲϣÍû¹ã´ó¿ªÔ´´úÂë°®ºÃÕߣ¬ÔÚ·ÖÏíÄãµÄ×÷Æ·µÄʱºò£¬Ï£ÍûÄܹ»·ÖÏíÍêÕûµÄÏîÄ¿ÐÅÏ¢£¬±ðÖ»ÓÐÔ´Â룬ÈÃÈËÅܲ»ÆðÀ´ÏîÄ¿£¨ÀÎɧ˵¶àÁË£©¡£
ÄÇôÏÂÒ»²½ÊÇÊ²Ã´ÄØ£º

¶÷£¬ÊDz»ÊÇËÆÔøÏàʶ£¿Äãû¿´´í£¬ÔÚн¨ÏîÄ¿µÄʱºòÒ²ÓÐÕâ¸öÑ¡Ôñ£¬Õâ¸öÊÇÑ¡Ôñ×Ô¶¯±àÒëµÄ¹¤¾ßµÄ·½Ê½¡£
Èç¹ûÄãµ½¹Ù·½ÏÂÔØ gradle ÂÌÉ«°ü£¬½âѹµ½Ä³¸öĿ¼£¬Äã¿ÉÒÔʹÓà gradle distribution£¬²¢É趨
Gradle home Ŀ¼£¬ÕâÑù IDEA ¹¹½¨±àÒëÏîÄ¿µÄʱºò£¬¾ÍʹÓÃÄãÉ趨µÄgradle°æ±¾½øÐС£
˵µ½ÕâÀÎÒ¾õµÃ¸Ã˵˵ use default gradle wrapper
¼ÇµÃн¨ÏîÄ¿µÄʱºòÒ²ÊÇʹÓà use default gradle warpper£¬Õâʱºò£¬ÉÏÃæÄ¿Â¼Ëµµ½µÄÈý¸öÎļþ¡£
gradle/ gradlew gradlew.bat |
Èç¹ûʹÓÃÕâÖÖ·½·¨£¬IDEA»áµ÷ÓÃÏîÄ¿¸ùĿ¼ gradlew »òÕß gradlew.bat £¨¸ù¾Ýlinux£¬windows£¬osx×Ô¶¯Ñ¡ÐÍ£©´úÌæÔÉúµÄ
gradle ·½·¨×ö×Ô¶¯¹¹½¨¡£
ÕâÁ½¸öÎļþ×öÁËʲôÊÂÇéÄØ£º
½âÎö gradle/wrapper/gradle-wrapper.properties
Îļþ£¬»ñÈ¡ÏîÄ¿ÐèÒªµÄ gradle °æ±¾ÏÂÔØµØÖ·
Åжϱ¾µØÓû§Ä¿Â¼Ï嵀 ./gradle Ŀ¼ÏÂÊÇ·ñ´æÔڸð汾£¬²»´æÔڸð汾£¬×ßµÚ3µã£¬´æÔÚ×ßµÚ4µã
ÏÂÔØ gradle-wrapper.properties Ö¸¶¨°æ±¾£¬²¢½âѹµ½Óû§Ä¿Â¼µÄÏÂ
./gradle ÎļþÏÂ
ÀûÓà ./gradle Ŀ¼Ï¶ÔÓ¦µÄ°æ±¾µÄ gradle ½øÐÐÏàÓ¦×Ô¶¯±àÒë²Ù×÷
¿´ÁËÉÏÃæµÄÔÀí£¬Ó¦¸ÃÃ÷°×ÁË£¬Èç¹ûÄã×Ô¼ºÏÂÔØ gradle ÈÃidea µ¼ÈëÏîÄ¿µÄʱºòʹÓá£ÄÇôÆäËûÈ˾Ͳ»ÖªµÀÄãʹÓÃʲô°æ±¾µÄgradle°æ±¾½øÐÐ×Ô¶¯±àÒ룬Èç¹ûʹÓÃ
ÏîĿĿ¼×Ô´øµÄ gradlew µÄ»°£¬gradlew ¾Í»á×Ô¶¯ÍêÉÆ gradle µÄ°²×°£¬ÈôÐèÒª¸üРgradle
µÄ°æ±¾£¬Ö»ÐèÒªÐÞ¸Ä gradle/wrapper/gradle-wrapper.properties ÎļþÄÚµÄÏÂÔØÁ´½Ó¼´¿É¡£¶øÇÒgradlewµÄ°æ±¾ºÍ
android °æ±¾ÊÇÐèÒªÊÊÅäµÄ£¬ÔÚ×Ô¼ºµçÄÔά»¤ÐèÇó²»Í¬°æ±¾µÄ gradlew Ò²ÊÇÒ»¸öÂé·³µÄÊÂÇé¡£
¶øÇÒÕâÑùµÄºÃ´¦Ò²ÓÐÒ»¸ö£¬µ±ÄãÔÚеçÄÔÉÏÏÂÔØÄãµÄÔ´Âë½øÐбàÒëʱ£¬ÄãÍêÈ«¿ÉÒÔ²»ÒÀÀµIDE¿ª·¢¹¤¾ß£¬Ö±½ÓÔÚÏîĿĿ¼ÏÂʹÓÃ
./gradlew build ¼´¿É¶ÔÔ´Âë½øÐбàÒ룬ÒòΪËü»á×Ô¶¯ÏÂÔØ gradle ½øÐе÷ÓÃ,¿ÉÒÔʹµÃеçÄԽϿìÍê³ÉÏîÄ¿¿ª·¢»·¾³ÊÊÅ䣨¶ÔÍøÂçÒÀÀµ½ÏÇ¿£¬Ï£Íû´øÉÏvpn£¬Õâ¾ÍÊÇΪʲôÄãÃÇÔÚн¨ÏîĿʱÐèҪȥÏÂÔØgradle£¬»¹±È½ÏÂýµÄÔÒò£¬ÎÒÃÇÒ»ÆðÀ´
f-u-c-k-g-f-w£©
µ±È»£¬µ¼ÈëÏîÄ¿ÐèÒªÄܹ»Ñ¡ÉÏ use default gradle wrapper µÄǰÌáÊÇ´æÔÚÉÏÃæÒ»¸ögradleÎļþ¼ÐÓëgradlew¡¢gradew.bat
¼ÈÈ»¿ÉÒÔÑ¡ÔñʹÓà gradlew À´¹ÜÀí gradle »òÕßÊÖ¶¯Ö¸¶¨ gradle ¹¤¾ß£¬ÄÇôÒѾ´æÔÚµÄÏîÄ¿ÈçºÎ¸ü¸Ä£¿
Õâ¸öÎÊÌ⣬ÎÒÔøÔÚ idea 13 °æ±¾ÉÏÓÐÕÒµ½£¬µ«ÊÇÔÚ idea 14 ÉÏÃæÃ»ÕÒµ½ÏàÓ¦µÄ±ä¸üÉèÖá£ËÒªÊÇÕÒµ½ÁË£¬¼ÇµÃÁôÑÔ¸æÖªÎÒÒ»Éù¡£
ÔÚµ¼ÈëÏîÄ¿»òÕßн¨ÏîÄ¿µÄʱºò£¬idea »á¸ù¾Ý build.gradle Îļþ¸üР*.iml ÏîÄ¿Îļþ£¬ÓÐʱºò£¬Äã»á·¢ÏÖ£¬ÐÂÔöÒ»¸öjar°ü£¬µ«ÊÇÎÞ·¨¶ÁÈ¡jar°üÄÚÈÝ£¬ÒòΪ¶ÔÓÚ
gradle À´Ëµ£¬jar°üÊôÓÚÏîÄ¿ÍâÒÀÀµ£¬°üÀ¨mavenÍØÕ¹°ü£¬¶¼ÊÇÊôÓÚÏîÄ¿ÍâÒÀÀµ£¬ÐèÒªÐÞ¸Äbuild.gradle
Îļþ£¬µ±Äã¼ÓÈëÐ嵀 jar°ü£¬»òÕßÌí¼ÓÁË mavenÖ§³Ö°ü£¬ÔÚideaÉÏÃæ¶¼»áÌáʾÐèÒª½øÐÐͬ²½

¶÷£¬ÉÏͼÄã¿´µ½µÄ£¬ÊÇÎÒÄ£ÄâÌí¼ÓÒ»¸öjar°üÖ®ºó£¬Ëæ±ã¼ÓÁËÒ»¸ö¿Õ¸ñ£¬ÎļþÉÏÌáʾÐèÒª½øÐÐ
gradle ÏîÄ¿Óë ideaÏîÄ¿Îļþͬ²½£¬µã»÷ sync now Ö®ºó£¬idea »á¸ù¾Ý gradle
ÎļþÖØÐ¸üР.idea Ŀ¼ÒÔ¼° *.iml Îļþ£¬ÈÃidea ¿ÉÒÔʶ±ðÒýÈëµÄ ×ÊÔ´¡£
ÕâÒ²¾ÍÊÇΪʲôÓÐÈË˵¼ÓÈëÒ»¸öjar°üȷûÓÐ×Ô¶¯Ìáʾ£¬¶øÖØÐ´ò¿ªideaÖ®ºó¾ÍÄܹ»ÌáʾʹÓÃjarÄڵķ½·¨ÁË£¬ÒòÎªÖØÐ´ò¿ªidea£¬¿ª·¢¹¤¾ß»áÖØÐÂͬ²½
build.gradle µÄÄÚÈÝ
Gradle Android Plugin VersionÓë Gradle
Version¶ÔÓ¦
gradleÖ»ÊÇÒ»¸ö×Ô¶¯»¯±àÒ빤¾ß£¬ËüÐèÒªÒÔÀ´²å¼þÀ´Ê¶±ðÕâÊÇʲôÏîÄ¿£¬ÓÃʲô·½Ê½È¥±àÒëµÄ¡£ÎÒÃÇÀ´¿´¿´
build.gradle Óë app/build.gradle µÄÉèÖÿ´¿´¡£


²»ÖªµÀÄãÃǻ᲻»áÆæ¹Ö£¬ÔÚappÀïÃæµÄ build.gradle ÖУ¬È±ÉÙÁË buildscript Óë
allproject µÄÉèÖ㬶÷£¬Ã»´í£¬ÎÒɾµôÁË£¬ÒòΪÕâ¸öÉèÖÃÊÇ¿ÉÒԼ̳и¸ÏîÄ¿µÄ build.gradle
ÆäÖи¸ÀàµÄÕû¸öÏîÄ¿ÐèÒªÒÀÀµ²å¼þ com.android.tools.build:gradle:0.14.2
×îºóÊǰ汾ºÅ¡££¨Ä¿Ç°ASµÄ°æ±¾ºÅÒѾÊÇ1.0.0ÁË£©
Õâ¸ö²å¼þµÄ°æ±¾ºÅÓëgradleµ÷ÓñàÒëʱÊÇÓÐÒÀÀµ¹ØÏµµÄ£¬²å¼þµÄ°æ±¾Ô½¸ß£¬ÐèÒª¸ü¶àgradleµÄÐÂÌØÐÔ£¬ÐµÄgradleÌØÐ¾ÍÐèҪа汾µÄgradle²ÅÄÜÖ§³Ö¡£
Õâʱºò£¬»Øµ½ÉÏÒ»½ÚµÄÄÚÈÝ£¬Èç¹ûҪʹÓÃandroidÏîÄ¿×Ô¶¯±àÒëµÄÐÂÌØÐÔ£¬Èç¹ûÑ¡Ôñ²»Í¬µÄgradleÖ¸Ïò·½Ê½£¬ÄÇôÄã¾ÍÒª×ö²»Í¬µÄ´¦Àí
ÏÂÔØ²»Í¬°æ±¾µÄgradle¶Ô²»Í¬µÄÏîÄ¿µÄ²»Í¬°æ±¾×ö²å¼þÓëgradleµÄ¶ÔӦά»¤£¬Èç¹ûÆäËûÈËʹÓÃÄãµÄÏîÄ¿£¬Ä㻹Ҫ¸æÖªËûʹÓÃʲô°æ±¾ÒÔÉϵÄgradle²ÅÄÜʹÓÃÕâ¸ö²å¼þ¡£
°Ñ¶ÔÓ¦¹ØÏµÒ»´ÎŪºÃÖ®ºó£¬¸üÐÂgradle/wrapper/gradle-wrapper.propertiesÏÂÔØµØÖ·£¬ÀûÓÃgradlew×Ô¶¯Ê¹ÓÃÏàÓ¦°æ±¾µÄgradle£¬ÕâÑùgradlew°æ±¾µÄÐèÇó¾Í¸ú×ÅÔ´Âë¹ÜÀíÒ»Ö±±£Áôµ½ÆäËûÈ˵ĵçÄÔÉÌ¡£
Ŀ¼¸ñʽ
ÏÈÀ´¿´¿´eclipseµÄÍêÕûĿ¼ÓëIDEAµÄÍêÕûĿ¼½á¹¹£¨µ±È»£¬IDEA¿´µÄĿ¼ʱ»ùÓÚmoduleµÄĿ¼ÉèÖõ쬶ø²»ÊǸù¾Ý×ÜÏîÄ¿µÄĿ¼ÉèÖõģ©
eclipseĿ¼

IDEA£¨AS£©Ä¿Â¼

°´ÕÕAndroid¿ª·¢µÄĿ¼£¬Çø·ÖΪÒÔϵÄĿ¼¸ñʽ£º

ÉÏÃæËùչʾµÄÄÚÈݾÍÊÇĿǰAndroidÓõ½µÄËùÓÐ×ÊÔ´ÎļþÀàÐÍ¡£ÎªÊ²Ã´Òª°ÑÏîÄ¿¸ùĿ¼ÁгöÀ´£¿Õâ¸öµ½ºóÃæÇþµÀ°üµÄʱºòÐèÒªÓõ½¡£¿ÉÊÇÒ²¿ÉÄÜÒ²»áÎʵ½£¬ÎªÊ²Ã´ÏîÄ¿¸ùĿ¼»áÓÐÁ½¼¶¡£src
µÚÒ»¼¶ÎÒµÄÀí½âÊÇÏîĿԴÂëÏà¹Ø¶¼ÔÚÕâÀµÚ¶þ¼¶£¬ÈÏΪÊÇÖ÷ÏîĿԴÂëÔÚ main Ŀ¼£¬¸ù¾ÝϵͳÍêÉÆÐÔ£¬Ó¦¸ÃÕë¶ÔÖ÷ÏîÄ¿Ìí¼Ó²âÊÔÏîÄ¿µÄÔ´Â룬ËùÒÔеĴúÂëÀïÃæÔÚ
main Ŀ¼ͬ¼¶µÄµØ·½»áÓÐ tests Ŀ¼£¬ÓÃÓÚ²âÊÔÏîÄ¿µÄĿ¼ԴÂëά»¤¡£Èç¹ûÓÐÇþµÀ£¬»¹¿ÉÒÔΪÇþµÀ°üн¨ÏîÄ¿Ä¿Â¼È¥×øÏîÄ¿×Ô¶¨Òå¡£
1. ÆäÖÐadilÊÇ¿ç½ø³ÌͨÐÅʹÓõÄ
2. jniÎļþ¼ÐÊÇ´æ·Ådnk±àÒëµÄc»òÕßcppÎļþ
3. jnilibsÎļþ£¬¾ÍÊÇÆ½Ê±jni½ÓÈëʹÓÃµÄ *.so¿â¡£ÐèÒªÀïÃæÊÇÐèÒª°üº¬Æ½Ì¨Îļþ¼ÐµÄ¡£ÈëÏÂͼËùʾ
µ±ÎÒÃÇÒª´ÓeclipseÀïÃæ×ªÒÆµ½asµÄʱºò£¬ÊÇ¿ÉÒÔͨ¹ýgradleÀ´´Óж¨ÒåÒÔÉÏ·¾¶µÄ¡£ÔÚmodule/build.gradleÎļþÀïÃæÓÐÕâôһ¶ÎÉèÖÃĬÈÏÉèÖã¬Èç¹û°´ÕÕȱʡ£¬¿ÉÒÔ²»Ð´¡£
sourceSets
{
main.setRoot('src/main')
main
{
manifest.srcFile
'[mainRoot]/AndroidManifest.xml'
java.srcDirs
=
['[mainRoot]/java']
resources.srcDirs
=
['[mainRoot]/java']
aidl.srcDirs
=
['[mainRoot]/aidl']
res.srcDirs
=
['[mainRoot]/res']
assets.srcDirs
=
['[mainRoot]/assets']
jni.srcDirs=['[mainRoot]/jni']
jniLibs.srcDirs
=
['[mainRoot]/jniLibs']
} |
ËùʾÐèÒªÊÊÓ¦eclipseµÄĿ¼¸ñʽ£¬¿ÉÒÔд³É£º
sourceSets { //main.setRoot('src/main') ÒòΪÏÂÃæµÄ·¾¶È«²¿±»¶¨ÒåÁË£¬ËùÒÔÕâ¸ö·½·¨ÒѾ²»Æð×÷ÓÃÁË¡£ main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] resources.srcDirs = ['src'] aidl.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] jni.srcDirs=['jni'] jniLibs.srcDirs = ['libs'] } |

ÄãÒ»¶¨Ææ¹Ö£¬ÎªÊ²Ã´libs µÄjar°üûÓÐÄ¿Â¼ÄØ£¿Ã»´í£¬»¹¼ÇµÃÎÒÉÏÃæÐ´¹ýµÄ£¬¶ÔÓÚ
gradle android ÏîÄ¿À´Ëµ£¬jar°üºÍlibraryÖ§³Ö£¬ÊôÓÚandroidÏîÄ¿µÄÍⲿ֧³Ö£¬Í¨Í¨ÓÉ
Gradle ÅäÖÃÎļþÈ¥¹ÜÀí¡£ÉÏͼµÄ×îºóÒ»¶Î˵Ã÷ÕâÒ»ÇС£
JarÖ§³Ö¡¢LibraryÖ§³Ö¡¢²Ö¿â²å¼þ
˵µ½ library £¬²»µÃ²»ËµËµÏîÄ¿ÀàÐÍ¡£
ÔÚÏîÄ¿¸ùĿ¼£¬ÎÒÃÇÒýÈëÁË android ²å¼þ£ºcom.android.tools.build:gradle:0.14.2
ÎÒÃǾßÌå¿´ÉÏͼ build.gradle µÄµÚÒ»ÐдúÂ룺
apply plugin: 'com.android.library' |
ÕâÊÇ˵Ã÷Õâ¸ö module ÏîĿ˵Ã÷ android-library ÏîÄ¿£¬ÎÒ¿´¹ýÆäËûµÄÏîÄ¿£¬gradle
module ÊÇ¿ÉÒÔÒÀÀµ¶à¸ö plugin ÈÃÕâ¸öÏîÄ¿³ÉΪ¶àÖÖÀàÐ͵ÄÏîÄ¿¡£
Èç¹ûÊÇÒ»¸öÆÕͨandroidÏîÄ¿£¬»áÊÇÕâÑùµÄ´úÂ룺
apply plugin: 'com.android.applition' |
ÄÇô android ÏîÄ¿ gradle ÖÐÒÀÀµ jar libs ÓÖÈýÖÖ·½·¨£º
#1 ÒÀÀµÏîÄ¿Ïà¶Ô·¾¶µÄjar°ü£¬µ±È»£¬Äã¿ÉÒÔ»»³Éȫ·¾¶
compile
files('libs/something_local.jar')
#»òÕßÒÀÀµlibsĿ¼ÏµÄËùÓÐjar°ü
compile
fileTree(dir:
'libs',
include:
['*.jar'])
#2 ÒÀÀµmaven²Ö¿âÖеÄÖ§³Ö°ü£¨Ä¿Ç°ºÜ¶àºÃµÄ¶¼ÔÚmaven½øÐйÜÀí£¬±ÈÈç
v4£¬v7Ö§³Ö°ü£©
compile
'com.android.support:appcompat-v7:20.0.0'
#3 ÒÀÀµÆäËûlibrary
module
compile
project(':jiechic-library') |
Õâôһ¿´£¬ÎÒÕâ¸ö jiechic-library Æäʵ¾ÍÊÇÒ»¸ömodule£¬Óëappͬ¼¶£¬Ê¹ÓõÄÊÇ apply
plugin: ¡®com.android.library¡¯ ÐÎʽµÄÒ»¸ö°²×¿ library ¡£
ÓÐʱºò£¬Äã¿ÉÄÜмÓÈëÒ»¸ö
ºÜ¶à¿ªÔ´²Ö¿â²»¶®Ôõô¼Ó£¿maven²å¼þÌí¼Ó²»ÔÚÕâÆªÎÄÕµÄÌÖÂÛ·¶Î§ÁË¡£ÄãÔÚËÑËѿɷñ£¿
±àÒë¹ý³Ì¼°ÇþµÀģʽ
ant µÄµÄ±àÒëĿ¼»ùÓÚµ±Ç°¹¤×÷Ŀ¼½øÐУ¬Èç¹ûÄãÐèÒª×Ô¶¨ÒåÇþµÀ£¬ÄãÐèÒª±àд ant ½Å±¾´úÂë£¬È¥Ìæ»»µ±Ç°Ä¿Â¼µÄÎļþ£¬¶øÇÒµ±Ç°Ä¿Â¼µÄÎļþÄ㻹ÐèÒª½øÐб£´æÒ»´Î¡£Èô³ö´íÁË£¬Ä㻹µÃÔÚ±¾µØÄ¿Â¼½øÐлָ´¡£
gradle µÄ±àÒ뷽ʽ£¬ÊǸù¾Ý»ù´¡ÏîÄ¿ÄÚÈÝ£¬ÒÔ¼°ÇþµÀÐÅÏ¢ £¬½«Ïà¹Ø´úÂëÎļþ¿½±´ºÏ²¢µ½ build Ŀ¼Ï£¬È»ºóÔÚbuild
Ŀ¼Ï½øÐбàÒë¡£ÔÚ´ËÉè¼ÆÐ¡Îļþ¶àÎļþµÄƽ·²¿½±´¸üУ¬ÔòÕý³£±àÒëËÙ¶ÈÈúܶàÈ˾õµÃ£¬IDEA ¿ª·¢±È Eclipse
µÄ¿¨£¬ÆäʵÕâÒ²ÊÇËûʵÏֵķ½Ê½Ôì³É¡£
µ«ÊÇ gradle ÏîĿȴÌṩÁ˺ܶàeclipse ²»·½±ãÌṩµÄ¹¦ÄÜ¡£±ÈÈçÇþµÀģʽ
±ÈÈçÇþµÀģʽ£º
ÔÚbuild.gradle ÖÐÓÐÕâÑùµÄÉ趨 productFlavors ÕâÑùµÄÉ趨£¬µ±¸ÄÉ趨´æÔÚ£¬Ôò
main Ö÷´úÂëÇþµÀ²»ÔÚ½øÐдò°ü£¬È«²¿ÒÀÀµÇþµÀ½øÐбàÒë°²×°µ÷ÊÔ

¿´µ½ÎÒµÄ productFlavors Öж¨ÒåÁËÁ½¸ö°æ±¾£¬Ò»¸öÊÇÏßÉϲâÊÔ²ÍÒû°æ£¬Ò»¸öÊÇÏßÉϲâÊÔ´óÖÚ°æ¡£Äã¿´ÁË£¬¿ÉÄܾٵÃÕâô¶¨ÒåûʲôÓã¬Äã¿´µ½´óÀ¨ºÅÀïÃæÁËô£¿£¿
applicationID£¬¶÷£¬Ã»´í£¬Õâ¾ÍÊÇ¿ÉÒÔÖØÐ¶¨ÒåËûµÄ°üÃû£¬ÔÚÕâÀ¨ºÅÀïÃæÄܹ»ÖØÐ¶¨ÒådefaultConfigÀïÃæµÄËùÓÐÅäÖá£Ã¿¸öÇþµÀµÄ°æ±¾ºÅ¶¼Äܵ¥¶Àά»¤¡£²»ÐèÒªÄãдant½Å±¾È¥Ìæ»»¡£¶øÇÒÿ¸öÇþµÀÒ²ÊÇͬʱ¿ÉÒÔ±àÒë
debug ºÍ release °æ±¾
ÔÙÀ´¿´ÏÂͼ£º

¼ÇµÃÔÚĿ¼Ïê½âµÄĿ¼ÉÏ£¬É趨µÄÊÇ main ÇþµÀµÄĿ¼£¬¶÷£¬Ã»´í£¬ÏÖÔÚÎÒÉ趨µÄÊÇÇþµÀµÄĿ¼¡£Õâ¸öÔõô˵£¿»¹¼ÇµÃÎÒÉ趨Ö÷Ŀ¼µÄÉ趨´úÂëô£¿
sourceSets { main.setRoot('src/main') main { manifest.srcFile '[mainRoot]/AndroidManifest.xml' java.srcDirs = ['[mainRoot]/java'] resources.srcDirs = ['[mainRoot]/java'] aidl.srcDirs = ['[mainRoot]/aidl'] res.srcDirs = ['[mainRoot]/res'] assets.srcDirs = ['[mainRoot]/assets'] jni.srcDirs=['[mainRoot]/jni'] jniLibs.srcDirs = ['[mainRoot]/jniLibs'] } |
û´í£¬Äã¿´µ½µÄ£¬ËùÓÐandroidÏà¹ØµÄÎļþ£¬¶¼ÔÚij¸örootÏÂÃæ¡£
ÄÇô£¬ÎÒÃÇÇþµÀÉÏÃæÉèÖõĵÄ·¾¶Ò²ÊÇ»ùÓÚÈç´Ë·¾¶½øÐÐÎļþ·ÖÀàµÄ¡£

¶÷£¬Ã»´í£¬É趨ÁËÇþµÀµÄÄÚÈÝ£¬±àÒëÇþµÀµÄʱºò£¬²»Í¬µÄÇþµÀ¾Í»áÒÀ¾ÝÖ÷ÏîÄ¿£¬È»ºóÌæ»»×Ô¼ºµÄÄÚÈÝ¡£ ±ÈÈçÉÏͼµÄString£¬ÄãÐèÒªÌæ»»µÄֻҪдÈëÄãÐèÒªÌæ»»µÄString
name£¬ÕâôvalueµÄÖµ¾Í»áÔÚÕâ¸öÇþµÀ¾Í»áÌæ»»¹ýÀ´¡£°üÀ¨drawableµÈ¶þ½øÖÆÎļþ£¬Ëû»á½øÐÐÌæ»»²Ù×÷£¬±ÈÈç˵£¬Äã¸øÓ¦Óñ¦´ò°üµÄÓ¦ÓÃÆô¶¯»¶ÓÒ³ÊÇÓ¦Óñ¦µÄ£¬¸øÆäËûÓ¦ÓÃÉ̳ǵÄÊÇÆäËûͼƬ£¬¾Í¿ÉÍêÈ«·ÅÖÃÔÚÇþµÀÎļþ¼ÐÄÚ¡£
ÈçºÎ¼ì²éÊÇ·ñºÏ²¢£¿¼ì²é build ÎļþÄڵĺϲ¢ÄÚÈÝ£¬¾ßÌåµÄ²»Ï¸Ëµ£¬ÄãÓ¦¸ÃÄÜÕÒµ½£¬±ÈÈçij¸öÇþµÀÌæ»»µÄÎļþ£¬ÕÒµ½ÄǸöÇþµÀÏàÓ¦µÄÎļþ²é¿´¼´¿É¡£Èç¹ûʱValueµÄÖµ£¬ÄǾͲ鿴valueÎļþÄÚ¶ÔÓ¦µÄnameÊÇ·ñÒѾ±ä¸ü³É¹¦¡£
˵µ½Õâ¸ö£¬²»µÃ²»ÌᣬÄãÓÐʱºòË«»÷±¨´íÐÅÏ¢£¬´ò¿ªÁËij¸öÎļþ£¬»òÕßij¸öͼƬ£¨.9ͼ½Ï¶à£©£¬Ïë¶ÔÆä½øÐÐÐ޸ģ¬Äã·¢ÏÖËüÊÇÖ»¶Á״̬£¬²»¿ÉÐ޸쬶÷£¬Ã»´í£¬Õâ¸ö±àÒëÎļþ¾¹ý
gradle ¿½±´µ½build ÏàÓ¦ÇþµÀĿ¼Ï²ſªÊ¼½øÐбàÒ룬ÔÚÄǸöĿ¼ÏµÄÎļþ¶¼ÊÇÖ»¶Á״̬£¬²¢·ÇÄãµÄÔ´´úÂëÎļþ¡£Äã¿ÉÒÔ¸ù¾ÝÌáʾÐÅÏ¢ÕÒµ½Äã×Ô¼ºµÄÔ´Îļþ½øÐÐÐ޸ġ£
Äã¿ÉÄÜ»áÎÊ£¬Õâô¶àÇþµÀ°ü£¬ÄÇÎÒÒªµ÷ÊÔ£¬¾¿¾¹Ä¬ÈÏʹÓÃÄĸöÇþµÀÄØ£¿¿´ÏÂͼ£º

¶÷£¬Äãû¿´´í£¬ÔÚÏîÄ¿ÏÂÃæ£¬ÓиöÑ¡Ôñ±àÒë°æ±¾µÄµØ·½¡£¡£ÕâÑù£¬ÄãÏëµ÷ÊÔÄǸöÇþµÀµÄ°æ±¾¶¼¿ÉÒÔÇáËɽøÐÐÁË¡£
ÌáËÙ±àÒë
gradle ÔÚ±àÒëʱºòÓÐЩ¶«Î÷¸újavaÐéÄâ»úÏà¹Ø£¬¼ÇµÃÒ»¿ªÍ·µÄÏîÄ¿Îļþ gradle.properties
ô£¿Õâ¸öÊÇÉ趨 gradle ÔÚÔËÐÐʱµÄ±àÒë»·¾³¡£
ÔÚÇþµÀ±àÒëµÄʱºò£¬Ä¬ÈÏÇé¿öÏ£¬Ò»¸öÇþµÀ»áÆôÓÃÒ»¸öjava ÐéÄâ»ú½øÐбàÒ룬ÔÚjava ÐéÄâ»úÆô¶¯£¬¹Ø±ÕµÄ¹ý³ÌÊǷdz£ºÄʱµÄ£¬gradle
ÌṩÁËÊØ»¤½ø³ÌµÄģʽ½øÐбàÒ룬´ÓÍ·µ½Î²¾ÍʹÓÃÒ»¸öjava ÐéÄâ»ú£¨jvm£©
ÖÁÓÚʲôÊÇÊØ»¤½ø³Ìģʽ£¬×ÊÁϱȽ϶࣬ÎҾͲ»½âÎöÁË£¬¿É¿´ÕâÀïÕâÀï
ͬʱ£¬¸ù¾ÝÄã×Ô¼ºµÄµçÄÔÄڴ棬Ä㻹¿ÉÒÔ¶¨ÒåÐéÄâ»úµÄÄÚ´æÊý´óС£¬Õâ¸öÆäʵ»á¹ØºõÄãµçÄÔ¿¨²»¿¨µÄÎÊÌ⣬µçÄÔÄÚ´æÌ«Ð¡£¬±àÒëÐéÄâ»úÄÚ´æÌ«¶à£¬Ò²ÐíÄãÇл»¸ö»·¾³¶¼»á¾õµÃ¾Ù²½Î¬¼è°É¡£

ºÜ¶à½Ì³Ì£¬¶¼Ð´±àÒë´ò°ü°æ±¾£¬Ê¹ÓÃÃüÁî
¿ÉÊÇ£¬¶¼²»»á¸æËßÄ㣬¸üºÃµÄÌá¸ßЧÂÊ¡£¹Ù·½Ìṩrelease °æ±¾Óëdebug°æ±¾µÄÇø±ð±àÒë
Ò»°ãÎÒÃÇÒª±àÒëËùÓÐÇþµÀµÄ release°æ±¾£¬»áʹÓÃÈçÏÂÃüÁ
./gradlew assembleRelease #or ./gradlew aR |
Äã¿Ï¶¨»áÎÊ£¬Èç¹ûÎÒ»ùÓÚÒ»¸öÎȶ¨°æ±¾£¬ÐÂÔöÒ»¸öÇþµÀ£¬ÎÒÖ»Ïë´ò°üÒ»¸öÇþµÀ£¬Ôõô°ì£¿Ö®ÐÐÏÂÃæµÄÃüÁî¿´¿´
Õâ»áÁбíËùÓÐ gradle task¡£taskµÄ¸ÅÄîÎҾͲ»½âÊÍÁË£¬ºÜ¶àgradle½Ì³ÌÒѾ˵ÁË¡£
ÎÒÖ»Òª´ò°ü onlinetestcatering ÇþµÀ£¬Ö»ÒªÖ®ÐÐÕâÑùµÄÃüÁî¾Í¿ÉÒÔÁË¡£
./gradlew task assembleOnlinetestcateringRelease |
½áβ
ÒÔÉÏÄÚÈÝ£¬¾ÍÊÇÎÒÕë¶Ô IDEA ²¢Ê¹Óà Gradle ¹¹½¨µÄһЩÉîÈëÀí½âÓëÌáÉýµÄÄÚÈÝ¡£¹ØÓÚ NDK ´úÂë±àÒ룬ÒÔ¼°´úÂë»ìÏýÅäÖ㬴ò°ü
key µÄÉèÖ㬺ܶà½Ì³Ì¶¼ÒѾ½â´ð¹ýÁË£¬ÎÒÒ²¾Í²»ÔÚ˵Ã÷ÁË¡£
|