±à¼ÍƼö: |
±¾ÎÄÖ÷Òª½éÉܵÄÊÇ×÷Õ߼Ǽ¼¯³ÉAtlasµÄ¹ý³ÌºÍÓöµ½µÄÎÊÌâÓë×ܽᣬϣÍûÄܶÔÄúÓÐËù°ïÖú¡£
±¾ÎÄÀ´×ÔÓÚ¼òÊ飬ÓÉ»ðÁú¹ûÈí¼þAlice±à¼¡¢ÍƼö¡£ |
|
¼òµ¥¼Ç¼µ±ÐèÒªÊÖ¶¯·ÖÅäbunldeµÄpackageIDʱµÄ·½·¨
²Î¿¼²å¼þÔ´Âë
ÔÀ´ÒÔΪ²å¼þµÄpackageIDÊǸù¾Ý²å¼þµÄÒýÈë˳Ðò¾ö¶¨µÄ£¬ËùÒÔΪÁ˲»³öÏÖÐ©Ææ¹ÖµÄÎÊÌ⣬һÔÙ¶£Öö²»Òª¸Ä±ä²å¼þÒýÈëµÄ˳Ðò£¬ÐµIJå¼þÒ²Ö»ÄÜ·ÅÔÚºóÃæ(Ö÷ÒªÊÇûÕÒµ½ÊÖ¶¯·ÖÅäidµÄ·½Ê½£¬ÎĵµÀïÓÐ䵫ÊDz¢²»Çå³þ)¡£µ«ÊÇ¿´Ô´Âëºó±È½ÏÇåÎúÁË¡£Æäʵ²¢Ã»ÓÐÑϸñ°´ÊÖ¶¯»¹ÊÇ×Ô¶¯·ÖÅäÀ´Çø·Ö£¬ÒòΪÈç¹ûÄãÖ»¸øÄ³¸ö²å¼þ·ÖÅäidÒ²ÊÇ¿ÉÒԵġ£Ã»ÓÐÊÖ¶¯·ÖÅäµÄ²å¼þ¾Í»á×Ô¶¯¸øÒ»¸ö£¬µ±È»²»»áÖØ¸´¾ÍÊÇÁË¡£¶øÇÒ×Ô¶¯·ÖÅäµÄʱºò»á¸ù¾Ý²å¼þµÄΨһ±êʶ(groupid+artifactId)×öÒ»¸öÅÅÐò£¬ËùÒԺͲå¼þÒýÓõÄ˳ÐòÒ²Î޹ء£×ܵÄÀ´Ëµ×Ô¶¨ÒåidÓÐÈýÖÖ·½Ê½£¬Ò»ÖÖÊÇÔÚ²å¼þµÄmoduleÀï¼ÓÒ»¸öcustomPackageID.txtÎļþ£¬ÀïÃæÖ±½Ó·ÅÊý×Öid.µÚ¶þÖÖÊÇÔÚhostÏîÄ¿µÄgradleÖеÄaltasÅäÖò¿·Ö¼ÓpackageIdFile,¶ÔÓ¦ÖµÊÇÒ»¸öÎļþ·¾¶£¬ÄÚÈÝΪgroupid:artifactId=numberµÄ¸ñʽ£¬¿ÉÅä¶à¸ö²å¼þ¡£µÚÈýÖÖÊÇÖ±½ÓÔÚhostÏîÄ¿Àï¼ÓÒ»¸öpackageIdFile.propertiesÎļþ,ÄÚÈݸñʽºÍµÚ¶þÖÖ·½Ê½Ò»Ñù¡£ÈýÖÖ·½Ê½ÓÅÏȼ¶ÊǵÝÔöµÄ¡£×îºóûÓÐÅäÖõIJå¼þ»á´ÓminPackageId(ÅäÖÃ35)¿ªÊ¼ÕÒÒ»¸öû±»Óõ½µÄ¡£ßÀßÀßÀ¡£¡£ÒÔÉ϶¼ÊÇ´Ó´úÂëÉÏ¿´µÄ½áÂÛ.µÚÒ»ÖÖûÊÔ£¬µÚÈýÖÖÎÞЧ£¬Ó¦¸ÃÊÇÀí½âµÄ²»¶Ô£¬¿ÉÄܲ»ÊÇͨ¹ýpropertiesÎļþ·½Ê½¡£µÚ¶þÖÖ·½Ê½ÊÇ¿ÉÐеġ£

1.ÔÏÈûÓÐÕÒµ½ÒÔ×ø±ê·½Ê½(awb)ÒýÓòå¼þÕýÈ·´ò¿ª×ËÊÆ(Ö÷ÒªÊÇÒòΪ²å¼þÖÐÓе¥¶ÀµÄ°üÒÀÀµÎÊÌ⣬±¾ÒÔΪ²å¼þµ¥¶ÀÒÀÀµµÄ°ü»á°Ñ×ÊÔ´ºÍ´úÂë´ò°üµ½awbÖУ¬×îºó·¢ÏÖÊÇ´òµ½ÁËapkÀïµÄ²å¼þÉú³ÉÎļþsoÖÐ)£¬ÏÖ¸ÄÕý¡£
Ê×ÏÈÈç¹ûij¸ö°üÖ»ÊÇÔÚÒ»¸ö²å¼þÖÐÒýÓõ½£¬²¢²»ÐèÒªÔÚhostÖÐÔ¤ÏÈÒýÓÃÕâ¸ö°ü£¬Ö»ÊÇÔÚÉÏ´«awbµ½²Ö¿âʱpomÖеÄÒÀÀµÐèÒªÅäÖÃÕýÈ·¡£Æä´Î£¬ÒýÓòå¼þʱ¿ÉÒÔÓÃcompile»òÕßbundleCompile¶¼¿ÉÒÔ(¸öÈ˸оõÓÃbundleCompileºÃµã£¬ÄÜÇå³þÖªµÀËü¾ÍÊǸö²å¼þ)£¬²¢ÇÒ²»ÄÜÖ±½ÓÓÃÀàËÆbundleCompile('com.test:secondbundle:1.0.0@awb')·½Ê½£¬ÕâÑù²»»áÒÀÀµµ½Ëü×Ô¼ºµÄÒÀÀµ£¬ÒªÃ´Ö±½ÓÓÃ
bundleCompile('com.test:secondbundle:1.0.0') £¬ÒªÃ´ÊÖ¶¯ÅäµÝ¹éÒÀÀµbundleCompile('com.test:secondbundle:1.0.0@awb'){
transitive =true
}
ºÍdemoÀïÅäÒÀÀµatlas-coreʱһÑù

Ö±½Óд³Écompile('com.taobao.android:atlas_core:5.0.6-rc29')Ò²ÊÇ¿ÉÒÔµÄ
2.ÐÞ¸ÄÁ˲å¼þͨ¹ýmaven publishÉÏ´«ÖÁ²Ö¿âʱpomÖÐûÓÐÒÀÀµÐÅÏ¢µÄÎÊÌâ.
Git:github.com/alibaba/atlas
1.gradleÅäÖÃ
AtlasµÄgradleÅäÖÃÓ¦¸ÃÊÇ×îÖØÒªÒ²ÊÇÐí¶àÈËÒ»Ö±À§»óµÄ²¿·Ö£¬¿ªÊ¼ÎÒÒ²²»ÊǺÜÃ÷°×£¬ÏÖÔÚ¿ÉÄÜҲûÍêȫŪ¶®£¬µ«ÊǼ¯³ÉÓ¦¸ÃÊÇûÎÊÌâÁË¡£¹ÙÍøºÍgitÉ϶¼Óм¯³ÉÎĵµ£¬ÕâÀïÖ»ÊǼòµ¥ÁÐһϣ¬²¢¶ÔһЩ֮ǰ²»Ì«Àí½âµÄÅäÖÃ×ö½âÊÍ¡£
ÒýÈëAtlasµÄ²å¼þ

ÕâÀï²»ÐèÒªÔÚÒýÈëandroid²å¼þ£¬ÀïÃæÓ¦¸Ã°üº¬Á˵±Ç°ÄÜÊÊÅäµÄ°æ±¾¡£»¹ÐèҪעÒâµÄÊÇatlas²å¼þÒ»Ö±ÔÚ¸üУ¬±Ï¾¹²Å·Å³öÀ´ÎÊÌâͦ¶à£¬ËùÒÔ¾¡Á¿ÓÃ×îеġ£
app(host/main bundle)ÖÐgradleÅäÖ᣷ּ¸¸ö²¿·Ö£º
1.»ù±¾ÅäÖÃ

a.ÕâÀï½ö½öÊÇÒýÈëapplicationºÍatlas£¬²¢ÇÒ¶ÔһЩ»·¾³×öÅäÖá£
b.Èç¹ûÏîÄ¿ÀïÃæ·Ö³öÀ´µÄmodule¶à½¨Òé¸÷ÖÖÅäÖÃдµ½Ò»¸öµ¥¶ÀµÄµØ·½¹ÜÀí£¬¿ÉÒÔ±ÜÃâºóÆÚÐ޸ĵÄʱºòÂé·³Ò»¶Ñ¡£
2.ÒÀÀµÅäÖÃ
awb:atlas×Ô¼º¶¨ÒåµÄÒ»ÖÖ¸ñʽ£¬¿ÉÒÔÖ±½ÓÀí½âΪÆÕͨµÄaar

hostµÄdependency
a.һЩatlas»ù±¾ÒÀÀµ£¬½ö½öÊÇhostÐèÒªÒÀÀµ£¬²å¼þmodule²»ÐèÒª
b.ÒýÈëһЩ¹«¹²µÄmodule,¸ù¾Ý×Ô¼ºÐèÒª£¬Èç¹ûÊÇÓÐÁ½¸öÒÔÉϲå¼þÓõ½µÄ¾Í¿ÉÒԷŵ½hostÀïÃæ£¬Èç¹û½öÊÇÒ»¸ö²å¼þÖÐÓõ½µÄÄ£¿é¿ÉÒÔµ¥¶À·Åµ½²å¼þÖÐÒýÓá£
c.ËùÒýÓõIJå¼þbundle.½¨Ò黹ÊǰÑbundleÒ²´ò°ü·¢²¼µ½²Ö¿âÖÐͨ¹ý×ø±ê(group:artifactid:version)µÄ·½Ê½ÒýÓá£ÕâÀï²»ÒªÔÚºóÃæ¼Ó@awb,·ñÔò²å¼þ²»»áÒÀÀµµ½×Ô¼ºpomÖеÄdependencies(¿´¶¥²¿2017/04/13
¸üÐÂÖеÄ1).
3.host´ò°ü·¢²¼ÅäÖÃ
ÒòΪ×ö¶¯Ì¬¸üÐÂʱÊÇÐèÒªÀúÊ·°æ±¾×ö¶Ô±ÈµÄ£¬ËùÒÔhost´ò°üºóÐèÒª·¢²¼µ½±¾µØmavenÖйÜÀí(ÒÔawb·½Ê½ÒýÓòå¼þʱҲÐèÒª°Ñ²å¼þµÄawb·¢²¼¹ÜÀí)

maven·¢²¼ÅäÖÃ
a.·¢²¼Ê±µÄgroupºÍversionÅäÖã¬artifactidдËÀµÄAP-debug,¿ÉÒÔ¸Ä
b.ÒýÈëmaven²å¼þ£¬²¢ÅäÖ÷¢²¼Ê±µÄ²Ö¿âλÖúÍÒª·¢²¼µÄ¶«Î÷(*.apÎļþ£¬ÓÃÀ´ºóÃæ´ò°üpatchʱ×ö»ù×¼°ü)¡£²Ö¿âλÖÿÉÒÔÊǹ«Ë¾×Ô¼ºµÄmaven¿â£¬Ò²¿ÉÒÔÊDZ¾µØ¿â¡£
c.ÆäÖÐapVersionºóÃæ½âÊÍ´ò°üpatchÅäÖÃʱÓõÄ
4.atlas²å¼þÅäÖÃ

a. autoStartBundlesÎÒÀí½âµÄÊÇÔÚappÆô¶¯Ê±¾Í¼ÓÔØµÄ²å¼þbunlde£¬Èç¹ûÄãÒýÓÃÁ˼¸¸ö²å¼þ²¢Ã»ÓÐÅäΪ×ÔÆô¶¯£¬ÄǸù¾ÝÎĵµÖ»ÄÜͨ¹ý´¥·¢²å¼þÖÐComponentµÄ¼ÓÔØ¶øÆô¶¯²å¼þ£¬±ÈÈçstartÒ»¸öbundleÖеÄactivity»òÕßservice¡£»òÕßÊÇͨ¹ýÊÖ¶¯µ÷ÓôúÂë¼ÓÔØÒ»¸ö²å¼þ(http://atlas.taobao.org/docs/guide-for-use/guide_for_bundle.html).
b.outOfApkBunldesÊÇÅäÖÃһЩ²»ÐèÒª´ò°üµ½apkµÄ²å¼þ£¬¾ÍÏñdemoÖеÄremoteBundle¡£ÏÂͼ

´ò°ühostºóµÄÊä³ö½á¹¹
ÕâÖÖ²å¼þÖÐÔÚ´ò°üÉú³Éapkºó²»»áÖ±½Ó±£´æµ½apkÖУ¬¶øÊÇ·ÅÈëµ¥¶ÀµÄÎļþ¼Ð£¬È»ºó¸ù¾Ý×Ô¼ºµÄÐèÇópush»òÕßdownµ½ÊÖ»úÉϵÄÖ¸¶¨Ä¿Â¼¡£
¿ÉÒԲο¼¹Ù·½demoÖеÄDemoApplication,ÏÂͼ

ͨ¹ýÉèÖÃcomponent²éÕÒʧ°ÜµÄ»Øµ÷À´¸ù¾Ý×Ô¼ºµÄÐèÇó»ñȡԶ³Ì²å¼þ¡£Áí:getBundleForComponetÖÐcomponetÓ¦¸ÃΪcomponent
- -.
c.patchµÄÅäÖá£Ö®Ç°Óмû¹ýapVersion,Õâ¸öĬÈÏÊǿյÄ,´ú±íµÄÊÇ´ò°üpatchʱµÄ»ù×¼Ïßapk.ÔÚ´ò°üpatchʱ¸ù¾ÝÃüÁî²ÎÊý´«Èë.Ö»ÓÐapVersion²»Îª¿ÕʱcreateTPatch=true²ÅÄÜÉúЧ¡£

Õ⼸¸öµØ·½ÁªÏµÆðÀ´²ÅÄÜ¿´¶®¡£»¹ÓоÍÊÇapkµÄ°æ±¾Ò²ÊÇÓÃÕâÀïµÄversion£¬Ä¬ÈÏ1.0.0¿ÉÐ޸ġ£

²å¼þbundleµÄgradleÅäÖÃ
²å¼þµÄÅäÖñȽϼòµ¥£¬Ò»°ãµÄandroidÅäÖÃÌø¹ýÁË
1.atlas²å¼þÅäÖÃ

¸ù¾Ý¹Ù·½ÎĵµÅä¾Í¿ÉÒÔ£¬ÆäÖÐversionÊÇ·¢²¼µ½²Ö¿âÖÐʱÓõġ£»¹ÓоÍÊÇ´òpatchʱҲ»áÓõ½£¬demoÖÐûÓÐÕâ¸översionËùÒÔ´òpatchʱ¾ÍÊÇunspecified¡£baseApFileÅä³Éapk´ò°üÊä³öµÄλÖþÍÐÐ,²Â²âÒ²ÊÇ´òpatchʱÓõġ£

´òpatchºóµÄupdate.json
2.ÒÀÀµÅäÖÃ

ÕâÀïÓÐÈýÖÖÒÀÀµ·½Ê½£¬Ò»°ãµÄcompile,Èç¹ûÒªÒýÓõİüÖ»ÊÇÕâ¸ö²å¼þʹÓÿÉÒÔÓÃÕâÖÖ·½Ê½(¶à¸ö²å¼þÓõ½µÄ°üÐèÒª·Åµ½hostÀïÃæÒýÓÃ).ÁíÒ»ÖÖprovidedCompile£¬Èç¹û²»Ê¹ÓÃaltasµÄ²å¼þµÄ»°Ò²Ö»¿ÉÒÔʹÓÃÕâÖÖÒýÈ뷽ʽ£¬µ«ÊÇÖ»Ö§³Öjar°ü£¬aarºÍproject²»¿ÉÒÔ(atlas½øÐÐÁËÀ©Õ¹Ó¦¸Ã)¡£ÕâÖÖ·½Ê½ÒýÓõİü²»»á´òµ½²å¼þµÄ°üÖС£×îºóÒ»ÖÖbundleCompileÒ²ÊÇatlas²å¼þÀïÃæµÄ£¬±íʾÕâ¸ö²å¼þÒýÓÃÁËÆäËüµÄ²å¼þ¡£
3.²å¼þ·¢²¼ÅäÖÃ
Èç¹ûÏëÒªÒÔawb·½Ê½ÒýÓòå¼þʱÐèÒª°Ñ²å¼þ·¢²¼µ½²Ö¿â£¬ÕâÀïÒÔmavenΪÀý£¬ÓÃmaven²å¼þÖеÄpublish½«awb·¢²¼µ½±¾µØ¿â¡£ÕâÖÖ·½Ê½ÔÝʱûÓÐÕÒµ½ÊÚȨÏà¹ØµÄÅäÖÃ(Çó½âÇóÖ¸½Ì)£¬ËùÒÔÖ»ÄÜ·¢²¼µ½±¾µØ»òÕßÊDz»ÐèÒªÊÚȨµÄmaven·þÎñ¡£³¢ÊÔ¹ýÓÃÁíÒ»ÖÖuploadArchiveµÄ·½Ê½µ«ÊDz»³É¹¦(Çó½âÇóÖ¸½Ì)

..2017/04/13¸üÐÂ
ÉÏÃæµÄÅäÖôò°üÉÏ´«ºópomÖÐûÓÐÒÀÀµÐÅÏ¢,ÐèÒªÔÚpublicationsÀïÊÖ¶¯Ìí¼Ó

ÅжÏij¸öÒÀÀµÊÇ·ñÔÚprovidedCompileµÄÒÀÀµ¼¯ÖÐ
Èçͼ£¬ÐèҪͨ¹ýpom.withXmlÅäÖÃÒÀÀµ£¬²¢ÇÒconfigurations.compileµÄÒÀÀµ¼¯Àï»á°üº¬ËùÓÐcompile»òÕßprovidedCompileµÄÒÀÀµ£¬ÐèÒª¹ýÂ˵ô£¬µ±Ç°Ö»ÕÒµ½´ÓprovidedCompileÒÀÀµ¼¯ÖбéÀúµÄ·½Ê½£¬ÈçÓиüºÃ·½Ê½ÇóÆÕ¼°¡£
?ͨ¹ýÉÏÃæ¼ÓµÄÅäÖþͿÉÒÔÔÚ²å¼þµÄ²Ö¿âpomÖÐÌí¼Ódependencies½áµã£¬²¢ÇÒÖ»ÓÐcompileÒýÓ÷½Ê½ÒÀÀµµÄ°ü¡£
ÎÊÌâ
1.¼¯³ÉÏîĿʱÔÓй¤³ÌÖÐÓÐproductFlavorsÅäÖã¬ÏÖÔÚµ±×ö²å¼þÒýÓÃºó±¨´í¡£ÔÝʱ¸ÄΪÆäËü·½Ê½ÊµÏÖ¡£
2.µ±¼¯³É¶à¸ö²å¼þ(ÆäʵÊǶà¸öapp¹¤³Ì£¬Ïë³¢ÊԷŵ½Ò»¸öÀïÃæ)ºó£¬sync
gradleʱ×ÜÊDZ¨ÒÀÀµÖظ´µÄÎÊÌ⣬ͨ¹ýdependencies²é¿´ÒÀÀµºó·¢ÏÖÁ½¸ö²å¼þµÄÒ»¼¶ÒÀÀµ¶¼ÓÐmultidexµÄÒýÓ㬵«ÊÇÁ½¸ö²å¼þµÄgradleÅäÖÃûÓÐÃ÷ÏÔµÄÒÀÀµmultidex,¶øÇÒ¼´Ê¹Óмä½ÓÒÀÀµmultidexµÄ°üÒ²ÊÇprovidedµÄ·½Ê½ÒÀÀµ¡£×îºó¿´ÁíÍâÒ»¸öatlasµÄdemoÖÐÓйýÂ˵ôsupportÏà¹ØµÄÅäÖ㬼ÓÈëÖ®ºóûÓÐÎÊÌâ¡£

3.ÒòΪ²å¼þĬÈÏÊǷŵ½armeabiÀïÃæµÄ£¬ËùÒÔÈç¹ûÒýÓÃµÄÆäËüÈý·½°üÖк¬ÓÐÆäËüabiµÄÖ»ÄܹýÂ˵ôÁË»òÕßÑ¡ÔñÆäËüsoµÄÊä³öĿ¼(ÔÝʱû¿´µ½Ïà¹ØÅäÖÃ).
4.¶¯Ì¬¸üÐÂʱÓöµ½²¿·ÖÓÉÓÚwindowϵͳµ¼ÖµÄÎÊÌâ(ali¿ª·¢ÓõÄmac), аæ»ù±¾Òѽâ¾ö£¬¸üкܿìºÜ¸øÁ¦¡£
5.¡¾Òѽâ¾ö£¬¿´2014/04/13¸üС¿ÒÔawb·½Ê½ÒýÓòå¼þʱ£¬awbÀïÃæÈç¹ûÒýÓÃÁËÆäËühostÀïÃæÃ»ÒýÓõİü£¬ÐèÒª°ÑÕâЩ°ü¶¼ÔÚhostÀïÃæÒýÓã¬ÒòΪ´ò°üawbºóÀïÃæ²¢Ã»ÓÐËùÒýÓðüµÄ´úÂë»òÕß×ÊÔ´£¬ËùÒÔ±àÒëʱÒýÓÃawbʱ»á³öÏÖÕÒ²»µ½×ÊÔ´µÄÎÊÌâ¡£(Õâµã²»ÖªµÀÊDZ¾À´¾Í²»Ö§³Ö»¹ÊÇ·½·¨Ã»Åª¶Ô)
6.ÒòΪÏîÄ¿ÖÐûÓкÍdemoÒ»ÑùµÄ¶¯Ì¬¸üÐÂÈë¿Ú£¬ËùÒÔÓÃÁËatlas
updateÖеĹ㲥(AwoPatchReceiver)×ö¶¯Ì¬¸üвâÊÔ£¬´ò°üpatch²½Öè¶¼Ò»Ñù£¬Ö»ÊÇÉÏ´«µÄĿ¼Óе㲻ͬ¡£¾ßÌå¿´ÃüÁî

update.json?pushµ½ÊÖ»úÉÏʱÐèÒª¸ÄΪpatch-*@*.json
»¹ÓÐAwoPatchReceiverȱÉÙÒ»ÐдúÂ룬¸ÄÁËÖØÐ·¢²¼ºó¿ÉÐÐ

¾Ñé
1.ÐèҪעÒâµÄÊÇËäÈ»hostÀïÃæÒѾÓÐÒ»¸öapplicationµ«ÊÇÔÚ²å¼þÖÐÒ²ÊÇ¿ÉÒÔÖ¸¶¨×Ô¼ºÒåµÄapplicationµÄ£¬Ö»ÔÚµÚÒ»´Î¼ÓÔØ²å¼þʱ³õʼ»¯µ÷Óá£ËùÒÔÈç¹û²å¼þÖÐÓÐÐèÒª³õʼ»¯µÄ²Ù×÷¿ÉÒÔºÍÒÔǰһÑù·Åµ½application£¬µ«ÊÇҪСÐÄÔÚ´úÂëÖÐgetApplicationµÃµ½µÄ²¢²»ÊDzå¼þÖж¨ÒåµÄ¡£
2.ÓÐʱ²å¼þ¿ÉÄÜÐèÒª·ÃÎÊhostÀïÃæµÄ×ÊÔ´»òÕß´úÂë(Èçappname,launcher)£¬¿ÉÒÔµ¥¶À½¨Ò»¸ölibrary´æ·Å¹«¹²×ÊÔ´ºÍ´úÂ룬²¢ÇÒһЩ¹«¹²µÄÈý·½¿âÒýÓÃÒ²¿ÉÒԷŵ½ÀïÃæ£¬ÕâÑùËùÓвå¼þ¶¼Ö»ÐèÒªÒÔprovidedµÄ·½Ê½ÒýÕâ¸ölibrary¾Í¿ÉÒÔ£¬²»ÓÃÔÚÿ¸ö²å¼þÀïÃæ¶¼ÒýÓÃÏàͬµÄ¿â¡£
3.ΪÁË¿ª·¢²å¼þʱ·½±ã£¬²å¼þÔÚ¿ª·¢¹ý³ÌÖÐÓ¦¸ÃÊÇ¿ÉÒÔÖ±½ÓÔËÐеÄapplication¶ø²»ÊÇlibrary£¬¶øÇÒ´ò°ü²å¼þºÍ¿ª·¢Ê±graldeÅäÖÃÊÇÓÐÇø±ðµÄ¡£Õâʱ¿ÉÒÔ·Ö¿ª´´½¨Á½¸öµ¥¶ÀµÄgradle(build_app.gradle,build_lib_gradle)£¬ÔÚbuild.gradleÖиù¾Ý¿ª·¢»¹ÊÇ´ò°üÑ¡ÔñÒýÓöÔÓ¦µÄÎļþ¡£

4.ÓÐÉÏÃæÒ»µã»ù´¡ÉÏ£¬ÎÒÃÇ»¹¿ÉÒÔ¸ù¾ÝÊÇ´ò°üapp»¹ÊÇ´ò°ü²å¼þ£¬ÔÚgradleÖÐÒýÓò»Í¬µÄ´úÂëĿ¼£¬»òÕßÊDz»Í¬µÄmanifestÎļþ¡£ÕâÑù¾Í¿ÉÒÔ°ÑÆ½Ê±µ±×÷appµÄÏîÄ¿Öкܶà´úÂëºÍ×ÊÔ´Çø·Ö¿ªÀ´,manifestÒ²¿ÉÒÔ¼ò»¯Ðí¶à£¬ÕâÑù»¹¿ÉÒÔÅ䲻ͬµÄapplication¡££¨ÀÏÏîÄ¿»¹ÊÇeclipse½á¹¹¡£¡£studio½á¹¹Ò²ÊÇ¿ÉÒԵģ©

5.¿ªÊ¼Ê±ÊÇʹÓÃÏîÄ¿ÒÀÀµµÄ·½Ê½ÒýÓòå¼þ£¬ËÙ¶ÈÂý¶øÇÒ¾³£³öÏÖ±àÒëʱ²å¼þÖÐRÀàºÍ×ÊÔ´²»Õý³£µ¼ÖÂn¶à¸ödexÎļþµÄ65535ÎÊÌâ¡£¸ÄΪawbºóºÃºÜ¶à¡£
6.»¹Òª×¢Òâ²å¼þ¼äµÄ×ÊÔ´ÊǶÀÁ¢µÄ£¬ËùÒÔ¿ÉÒÔ´æÔÚÏàͬµÄ×ÊÔ´Ãû¡£Ê¹ÓÃʱҲҪÉÔ¼Ó×¢Òâ¡£
7.¿ª·¢Ê±Èô³öÏÖĪÃûÆæÃîµÄÎÊÌâ(¿ÉÄÜÖ´Ðйý¶¯Ì¬¸üÐÂ)£¬ÔÚcleanÖ®ºóÒ²ÎÞÓÃʱ£¬°ÑÊÖ»úÉÏÒѰ²×°µÄappÐ¶ÔØÊÔÊÔ¡£
8.¿´dingdingȺÀïÎʵĺܶàµÄÎÊÌâbuildÖÐij¸öÎļþ±»Õ¼Ó㬾³£³öÏÖ(window)£¬ËùÒÔhostÖÐÿ´ÎÖ´ÐÐtaskǰ°ÑjavaɱһÏ¡£ÆäʵҲ¾Í2ÃëµÄʱ¼ä¶øÒÑ£¬²»ÓÃÌ«´µÃ«Çó´Ã
9.ʹÓÃawbµÄ·½Ê½ÒýÓòå¼þʱ¸ñʽΪbundleCompile»òÕßcompile¶¼¿ÉÒÔ£¬bundleCompile¸üÖ±¹Û¡£
10.Ðí¶àÈ˶ÔgradleÃüÁî²»ÊìϤ(ÎÒÒ²²»ÊǺÜÊì,ż¶û·¢Ïֵģ©£¬ÌἸ¸ö¾³£Óöµ½ÈËÎʵĵ㠣º
?a.terminalÖÐĬÈÏÔÚÏîÄ¿¸ùĿ¼¡£ËùÒÔÈç¹ûÔÚ¸ùĿ¼ֱ½ÓÖ´ÐÐtask(Èçclean)ʱ»áÖ´ÐÐËùÓеÄmoduleµÄcleanÈÎÎñ¡£ÓÐʱÕâÑù×ö²¢²»ÊDZØÐèµÄ¶øÇÒ²¿·ÖÈÎÎñ²¢²»ÊÇËùÓÐmodule¶¼Ö§³ÖµÄ£¬Õâʱ¾Í»á³ö´í¡£
b.Èç¹ûÖ»Ïë¶Ôij¸ömoduleÖ´ÐÐtask
·½·¨Ò»£º¿ÉÒÔcdµ½Õâ¸ömoduleµÄĿ¼ÔÚÖ´ÐÐgradlew²Ù×÷¡£¸ù¾ÝmoduleµÄĿ¼²ã¼¶¼Ó..\
? ¡£macϵͳ»»³É/
..\gradlew clean
..\..\gradlew clean
·½·¨¶þ£º Ò»Ö±ÔÚ¸ùĿ¼£¬²»ÓÃÇл»Ä¿Â¼,²»ÓùÜĿ¼µÄ²ã¼¶¶àÉî¡£×Ô¼ºÓÃÕâÖÖ·½Ê½
gradlew ?£ºmoduleName£ºtaskname(Èçclean)
c.¶à¸ötaskÒ»ÌõÃüÁî
gradlew? £ºmoduleB£ºclean ?£ºmoduleA£ºclean? £ºmoduleA£ºasR(¿ÉÒÔËõд,´ú±íassembleRelease)
? £ºmoduleA£ºpublish?
11.ʹÓÃ×ø±ê·½Ê½ÒýÓòå¼þʱ£¬Ã¿¸ö²å¼þ¶¼ÒªÅäÖÃmaven publishÉÏ´«µÄÅäÖã¬Èç¹ûÔÚÿ¸ö²å¼þµÄgradleÖж¼ÅäÖÃÒ»´ÎµÄ»°»áµ¼ÖºܶàÖØ¸´²¢ÇÒÐÞ¸ÄʱҲ²»·½±ã¡£ÕâʱÎÒÃÇ¿ÉÒÔн¨Ò»¸öµ¥¶ÀµÄpublish.gradleÎļþ´æ·ÅÉÏ´«Ïà¹ØÅäÖã¬ÖÁÓÚÿ¸ö²å¼þµÄgroup,artifactIdºÍversionÏà¹ØÐÅÏ¢ÔÚ²å¼þµÄmoduleÖÐÐÂÔöÒ»¸ögradle.propertiesÀïµ¥¶ÀÅäÖþÍok.ÕâÑùÔÚ²å¼þµÄgradleÖÐapplyһϾÍÐУ¬ÐÞ¸ÄÒ²Ö»ÓøÄÒ»·Ý.

²å¼þgradleÖÐÒýÓÃ

publish.gradleÖдæpublishÏà¹ØÅäÖ㬲¢ÇÒgroupid,versionµÈÓÃÅäÖöø²»ÊǶ¨ËÀ

gradle.propertiesÖÐÅäÖÃ
×îºó
×ܵÄÀ´ËµAtlasµÄ¼¯³ÉËã±È½Ï¼òµ¥µÄ£¬Ð޸ĵĵط½Ò²±È½ÏÉÙ,´ó¶àÊÇgradleµÄÅäÖ㬲å¼þÖÐûÓÐÒýÈëÈκÎatlasÏà¹ØµÄ°ü£¬¿ÉÒÔ˵ÍêÈ«ÎÞ¸ÐÖª¡£¼òµ¥Á˽âʵÏÖÔÀí¸ü¼Ó¾õµÃnubility.²»¹ÜÊÇ´ÓclassµÄ¼ÓÔØ»¹ÊÇ×ÊÔ´µÄ¼ÓÔØ·½Ê½¶¼¸Ð¾õºÜ´ÏÃ÷£¬ÕâÁ½¿éÒ»Ö±ÊDzå¼þ»¯µÄ´óÎÊÌâËùÔÚ¡£¶øÇÒËù˵²»¾ÃµÄ½«À´¾Í»á·Å³ö¶¯Ì¬Ìí¼ÓactivityºÍserviceµÄ¹¦ÄÜ£¬ÕâÊǺܶà²å¼þ¿ò¼Ü×ö²»µ½µÄ¡£
|