±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÓÚ51cto,±¾ÎĽéÉÜÁËÒµÄÚһЩÓÅÐãµÄ¼Ü¹¹ºÍÉè¼ÆÀíÄÒÔ¼°¹«Ë¾ÄÚ²¿ÃÀÍÅ
App¡¢µãÆÀ App ÍŶӵį½Ì¨»¯Êµ¼ù¾Ñé¡£ |
|
ÃÀÍÅÍâÂô×Ô 2013 Äê´´½¨ÒÔÀ´£¬ÒµÎñÒ»Ö±¸ßËÙ·¢Õ¹¡£Ä¿Ç°ÃÀÍÅÍâÂôÈÕÍê³É¶©µ¥Á¿ÒÑÍ»ÆÆ
1800 Íò£¬³ÉΪÃÀÍŵãÆÀ×îÖØÒªµÄÒµÎñÖ®Ò»¡£

ÃÀÍÅÍâÂôµÄÓû§¶ËÈë¿Ú£¬´Óµ¥Ò»µÄÍâÂô¶ÀÁ¢ App£¬ÍØÕ¹ÎªÍâÂô¡¢ÃÀÍÅ¡¢µãÆÀµÈ¶à¸ö App Èë¿Ú¡£
ÃÀÍÅÍâÂôËù³ÐÔØµÄÒµÎñ£¬Ò²´Óµ¥Ò»µÄ²ÍÒûÒµÎñ£¬·¢Õ¹µ½²ÍÒû¡¢³¬ÊС¢ÉúÏÊ¡¢¹ûÊß¡¢Ò©Æ·¡¢ÏÊ»¨¡¢µ°¸â¡¢ÅÜÍȵÈÊ®¶à¸ö´óÆ·ÀàÒµÎñ¡£ÒµÎñµÄ¿ìËÙ·¢Õ¹¶Ô¿Í»§¶Ë¼Ü¹¹²»¶ÏÌá³öеÄÌôÕ½¡£
ƽ̨»¯±³¾°
ºÜÔç֮ǰ£¬ÍâÂô×÷Ϊ·õ»¯ÖеÄÏîĿֻÓÐÃÀÍÅÍâÂô App£¨ÏÂÎļò³ÆÍâÂô App£©Ò»¸öÈë¿Ú£¬ºóÀ´ÍâÂô×÷Ϊһ¸ö×ÓÆµµÀ½ÓÈëµ½ÃÀÍÅ
App£¨ÏÂÎļò³ÆÍâÂôƵµÀ£©£¬Á½¶ËÒµÎñ²¢Ðеü´ú¿ª·¢¡£
ÔçÆÚΪÁË¿ìËÙÉÏÏߣ¬¿ª·¢Í¬Ñ§Ö±½Ó½«ÍâÂô App µÄ´úÂ뿽±´Ò»·Ýµ½ÍâÂôƵµÀ£¬×öÁ˼òµ¥µÄÊÊÅä¾ÍºÜ¿ì½ÓÈëµ½ÃÀÍÅ
App ÁË¡£
ÔçÆÚµÄÍâÂô App ºÍÍâÂôƵµÀÓÉÁ½¸öÍŶӷֱðά»¤£¬¶øÔÚËæºóÒ»¶Îʱ¼äÀÁ½¶Ë´úÂëÌåϵ²îÒìÔ½À´Ô½´ó¡£
×îºóÑݱä³ÉÁË´ÓÍøÂ硢ͼƬµÈ»ù´¡¿âµ½ UI ¿Ø¼þ¡¢ÀàµÄÃüÃûµÈ¶¼²»¾¡ÏàͬµÄÁ½Ì×´úÂë¡£
¾¡¹ÜºóÀ´Á½¸öÍŶӺϲ¢µ½Ò»Æð£¬µ«ÀúÊ·µÄ²îÒìÒѾÐγɣ¬ÎªÁËÓÅÏÈÂú×ãÒµÎñÐèÇ󣬺ܳ¤Ò»¶Îʱ¼äÄÚ£¬ÎÒÃÇÖ»ÄÜÔÚÁ½Ì×´úÂëµÄ»ù´¡Éϲ»¶Ï¶Ñ»ý¸ü¶àµÄ¹¦ÄÜ¡£
ά»¤Á½Ì×´úÂëµÄ³É±¾¿ÉÏë¶øÖª£¬¶øÒµÎñµÄѸÃÍ·¢Õ¹ÓÖʹµÃÕâÒ»ÎÊÌâÔ½·¢²»¿ÉÈÌÊÜ¡£

ÔÚÎÒÃÇ̽Ë÷½â¾öÁ½¶Ë´úÂ븴ÓõÄͬʱ£¬ÒµÎñµÄ·¢Õ¹ÓÖ¶ÔÎÒÃÇÌá³öеÄÌôÕ½¡£Ëæ×ÅÍŶӳÉÔ±À©³äÁËÊý±¶£¬É̳¬ÉúÏʵȴ¹Ö±Æ·ÀàµÄ²ð·Ö£¬ÒÔ¼°ÒìµØÑз¢ÍŶӵĽ¨Á¢£¬ÍâÂô¿Í»§¶ËµÄƽ̨»¯±»ÌáÉÏÈճ̡£
¶øÔÚ´Ë֮ǰ£¬ÍâÂô App ºÍÍâÂôƵµÀ»ù±¾±£³Öµ¥¹¤³Ì¿ª·¢£¬ÕâÑùµÄģʽÏÔÈ»ÊÇÎÞ·¨Ö§³Ö¶àÍŶÓÐ×÷¿ª·¢µÄ¡£
Òò´Ë£¬ÎÒÃÇÐèÒª¿ìËÙ½«´úÂëÖØ¹¹ÎªÖ§³Öƽ̨»¯µÄ¶à¹¤³Ìģʽ£¬Í¬Ê±»¹Òª¿¼ÂÇÒµÎñÄ£¿éµÄ½âñʹµÃÐÂÒµÎñ¿ÉÒÔ¿½±´ÏÖÓеĴúÂë¿ìËÙÉÏÏß¡£
´ËÍ⣬ÔÚʵʩƽ̨»¯µÄ¹ý³ÌÖУ¬Á½¶Ë´úÂ븴ÓõÄÎÊÌ⻹ûÓнâ¾ö£¬Èç¹ûÁ½¶ËµÄ´úÂëûÓÐͳһ¶øÖ±½Ó×öƽ̨»¯ÒµÎñ²ð¿â£¬±ØÈ»»áµ¼ÖÂÎÊÌâµÄ¸´ÔÓ»¯¡£
ÔÚÕâÑùµÄ±³¾°Ï£¬¿ÉÒÔ¿´³öÎÒÃÇÃæÁÙµÄÎÊÌâÏà½ÏÓÚÆäËûƽ̨ÐÍ App ¸üÎªÌØÊâºÍ¸´ÔÓ£º¼ÈÒª½â¾öÍâÂôÒµÎñƽ̨»¯µÄÎÊÌ⣬ÓÖÒª½â¾öÍâÂô
App ºÍÍâÂôƵµÀÁ½¶Ë´úÂ븴ÓõÄÎÊÌâ¡£
ÂÅ´Î̽Ë÷
ÔÚʵʩƽ̨»¯ºÍÁ½¶Ë´úÂ븴ÓõĵÀ·Éϲ¢·ÇÒ»·«·ç˳£¬ºÜ¶à·½°¸Ö»ÓÐÔÚ³¢ÊÔÖ®ºó²ÅÖªµÀÎÊÌâËùÔÚ¡£
ÎÒÃǶà´ÎÓöµ½ÕâÑùµÄÇé¿ö£ºÉè¼Æ·½°¸Íê³Éºó£¬ÍŶÓÒѾȫÉíÐÄͶÈëµ½¿ª·¢Ö®ÖУ¬µ«ÊÇÓÉÓÚÒµÎñÐÎ̬·¢Éú±ä»¯£¬ÔÓеÄÉè¼ÆÒ²±»ÆÈ¸ü¸Ä¡£
ÔÚ²»¶ÏµÄ̽Ë÷ºÍʵ¼ù¹ý³ÌÖУ¬ÎÒÃǾÀúÁ˶à¸öÖмä½×¶Î¡£ËäÈ»Óв»ÉÙʧ°ÜµÄ°¸Àý£¬µ«ÊÇÒ²»ýÀÛÁ˺ܶà¼Ü¹¹Éè¼ÆÉϵı¦¹ó¾Ñ飬Õû¸öÍŶӶÔÒµÎñºÍ¼Ü¹¹Ò²ÓÐÁ˸üÉîµÄÀí½â¡£
ËÑË÷¿â²ð·Öʵ¼ù
ÔçÆÚÃÀÍÅÍâÂô App ºÍÃÀÍÅÍâÂôƵµÀÁ½¸öÍŶӵĺϲ¢£¬´øÀ´µÄ×î´óÍ´µãÊÇ´úÂ븴Ó㬶ø·Çƽ̨»¯£¬¶øÔںܳ¤µÄÒ»¶Îʱ¼äÄÚ£¬ÎÒÃÇҲûÓÐÏë¹ý´Óƽ̨»¯µÄ½Ç¶ÈÈ¥½â¾öÁ½¶Ë´úÂ븴ÓõÄÎÊÌâ¡£
È»¶ø´úÂ븴ÓõÄһЩʧ°Ü³¢ÊÔ£¬¸øºóÐøÆ½Ì¨»¯µÄ¼Ü¹¹´øÀ´Á˲»ÉÙ±¦¹óµÄ¾Ñé¡£
µ±Ê±ÊÇÔõô½â¾ö´úÂ븴ÓÃÎÊÌâµÄÄØ£¿ÎÒÃÇͨ¹ýºÍ²úÆ·¡¢Éè¼ÆÍ¬Ñ§µÄ¹µÍ¨£¬Ô¼¶¨ÁËδÀ´µÄÐèÇ󣬻á´ÓÐèÇóÄÚÈÝ¡¢½»»¥¡¢ÑùʽÉÏ£¬Á½¶Ë¾¡¿ÉÄܵı£³ÖÒ»Ö¡£
¾¹ý¶à´ÎÌÖÂÛºó£¬ÍŶӷ¢ÆðÁËÁ½¶Ë´úÂ븴Óõļ¼Êõ·½°¸³¢ÊÔ£¬ÎÒÃǾö¶¨½«ËÑË÷Ä£¿é´ÓÖ÷¹¤³Ì²ð·Ö³öÀ´£¬²¢ÊµÏÖÁ½¶Ë´úÂ븴Óá£
È»¶øÁ½¶ËµÄËÑË÷Ä£¿é´úÂëµ×²ã²îÒìºÜ´ó£¬BaseActivity ºÍ BaseFragment ²»Í³Ò»£¬UI
Ñùʽ²»Í³Ò»£¬Êý¾Ý Model ²»Í³Ò»£¬Í¼Æ¬¡¢ÍøÂç¡¢Âñµã²»Í³Ò»£¬²¢ÇÒÁ½¶Ë·¢°æÖÜÆÚÒ²²»Ò»Ö¡£
Õë¶ÔÕâЩÎÊÌâµÄ½â¾ö·½°¸ÊÇ£º
1.ͨ¹ý´úÀíÆÁ±Î Activity ºÍ Fragment »ùÀ಻ͳһµÄÎÊÌâ¡£
2.Á½¶ËÖ÷¹¤³Ì style ¸²¸ÇËÑË÷¿âµÄ UI Ñùʽ¡£
3.ËÑË÷¿âʹÓöÀÁ¢µÄÊý¾Ý Model£¬ÉϲãÈ¥×öÊý¾ÝÊÊÅä¡£
4.ÆäËû²îÒìͨͨÅ׳ö½Ó¿ÚÈÃÉϲãʵÏÖ¡£
5.ºÍ PM ¹µÍ¨¾¡Á¿Ê¹²úÆ·ÐèÇóºÍ·¢°æÖÜÆÚÒ»Ö¡£
´óÖ¼ܹ¹ÈçÏÂͼ£º

ËäÈ»ËÑË÷¿âÔÚ¶ÌÆÚÄÚ²ð·ÖΪ¶ÀÁ¢µÄ¹¤³Ì£¬²¢ÊµÏÖÁ˾ø´ó²¿·ÖµÄÁ½¶Ë´úÂ븴Óá£
µ«ÊǺþ°²»³¤£¬½ö½ö¸üйý¼¸¸ö°æ±¾ºó£¬ÓÉÓÚÐèÇóºÍ°æ±¾·¢²¼ÖÜÆÚµÄ²îÒ죬ËÑË÷¿â¿ªÊ¼±äΪÁ½¸ö·ÖÖ§£¬²¢ÇÒÁ½¸ö·ÖÖ§µÄ²îÒìÔ½À´Ô½´ó£¬×îºó´úÂëÎÞ·¨ºÏ²¢¶ø²»µÃ²»ÓÀ¾Ãά»¤Á½¸öËÑË÷¿â¡£
ËÑË÷¿âÊÂʵÉÏÊÇÒ»´Îʧ°ÜµÄ²ð·Ö£¬ÆäÖеÄÎÊÌâ×ܽáÆðÀ´ÓÐÈý¸ö£º
1.ÔÚÁ½¶Ëµ×²ã²îÒì¾Þ´óµÄÇé¿öÏÂ×ÔÉ϶øÏµÄÇ¿Ðвð·Ö£¬µ¼Ö´óÁ¿ÊµÏÖºÍÊÊÅäÁôÔÚÁËÁ½¶ËÖ÷¹¤³ÌʵÏÖ£¬ÕâÑùµÄÉè¼Æ²ã¼¶»ìÂÒ£¬±ß½çÄ£ºý£¬²¢ÇÒ¼«´óµÄÔö¼ÓÁËÒµÎñ¿ª·¢µÄ¸´ÔÓÐÔ¡£
2.¼ÄÏ£ÍûÓÚÁ½¶ËÐèÇóºÍ·¢°æÖÜÆÚÍêȫһÖÂÕâ¸öÏë·¨²»ÇÐʵ¼Ê£¬Èç¹ûÔڼܹ¹Éϲ»ÎªÁ½¶ËµÄ²îÒìÐÔÔ¤Áô¿ÉÉìËõµÄ¿Õ¼ä£¬¸´ÓÃ×îÖÕÊÇÄÑÒÔ³ÖÐøµÄ¡£
3.Ô¼¶¨»ò¹æ·¶£¬ÊÜÏÞÓÚ×éÖ¯¼Ü¹¹ºÍ¾ßÌåÖ´ÐеĸöÈË£¬²»È·¶¨ÐÔÌ«¸ß¡£
Ò³Ãæ×é¼þ»¯Êµ¼ù
ÔÚ¾Àú¹ýËÑË÷¿âµÄʧ°Ü²ð·Öºó£¬´ó¼ÒÈÏΪĿǰ»¹²»¾ß±¸ÊµÏÖÄ£¿éÕûÌå²ð·ÖºÍ¸´ÓõÄÌõ¼þ£¬Òò´ËÎÒÃÇ×ßÏòÁËÁíÒ»¸ö·½Ïò£¬¼´ÊµÏÖÒ³ÃæµÄ×é¼þ»¯ÒÔ´ï³É²¿·Ö×é¼þ¸´ÓõÄÄ¿±ê¡£
Ò³Ãæ×é¼þ»¯µÄÉè¼ÆË¼Â·ÊÇ£º
1.½«Ò³Ãæ²ð·ÖΪÁ£¶È¸üСµÄ×é¼þ£¬×é¼þÄÚ²¿³ýÁ˰üº¬ UI ʵÏÖ£¬»¹°üº¬Êý¾Ý²ãºÍÂß¼²ã¡£
2.×é¼þÌṩ¸öÐÔ»¯ÅäÖÃÂú×ãÁ½¶Ë²îÒìÐèÇó£¬Èç¹ûÎÞ·¨Âú×ãÔÙͨ¹ý´úÀíÅ×µ½Éϲ㴦Àí¡£
Ò³Ãæ×é¼þ»¯ÊÇÒ»¸öÁ¼ºÃµÄÉè¼Æ£¬µ«ËüÖ÷ÒªÊÊÓÃÓÚ½â¾ö Activity ¾Þ´ó»¯µÄÎÊÌâ¡£
ÓÉÓڵײã²îÒì¾Þ´óµÄÇé¿ö£¬Ê¹µÃÒ³Ãæ×é¼þ»¯ºÜÄÑʵÏÖ´ó¹æÄ£µÄ¸´Ó㬸´ÓÃЧÂʵ͡£ÁíÒ»·½Ãæ£¬Ò³Ãæ×é¼þ»¯Ò²Ã»ÓÐΪÁ½¶Ë²îÒìÐÔÔ¤Áô¿ÉÉìËõµÄ¿Õ¼ä¡£
MVP ·Ö²ã¸´ÓÃʵ¼ù
ÎÒÃÇ»¹³¢ÊÔ¹ýÔËÓÃÉè¼ÆÄ£Ê½½â¾öÁ½¶Ë´úÂ븴ÓõÄÎÊÌâ¡£Ïë·¨Êǽ«´úÂë·ÖΪÒ×±äµÄºÍÎȶ¨µÄÁ½²¿·Ö£¬Òױ䲿·ÖÔÚÁ½¶ËÉϲãʵÏÖ²îÒ컯´¦Àí£¬Îȶ¨²¿·Ö¿ÉÒÔÔÚϲãʵÏÖ¸´Óá£
·½°¸µÄÖ÷ÒªÉè¼ÆË¼Â·ÊÇ£º
1.½è¼ø Clean MVP ¼Ü¹¹£¬¸ù¾ÝÖ°Ô𽫴úÂë²ð·ÖΪ Presenter£¬Data
Repository£¬Use Case£¬View£¬Model µÈ½ÇÉ«¡£
2.UI¡¢¶¯»¡¢Êý¾ÝÇëÇóµÈÂß¼ÔÚϲã½ö±£Áô½Ó¿Ú£¬ÔÚÉϲãʵÏÖ²¢×¢È뵽ϲ㡣
3.¶ÔÓÚÁ½¶Ë²»Ò»ÖµÄÊý¾Ý Model£¬Í¨¹ýת»»Æ÷ÊÊÅäΪϲãͳһµÄÄ£ÐÍ¡£
´óÖ¼ܹ¹ÈçÏÂͼ£º

ÕâÊÇÒ»ÖÖÁé»î¡¢ÓÅÑŵÄÉè¼Æ£¬Äܹ»ÊµÏÖ²¿·Ö´úÂëµÄ¸´Ó㬲¢Äܽâ¾öÁ½¶Ë»ù´¡¿âºÍ UI µÈ²îÒì¡£
Õâ¸ö·½°¸ÔÚÊ×Ò³ºÍ¶þ¼¶ÆµµÀÒ³µÄ²¿·ÖÄ£¿éʹÓÃÁËÒ»¶Îʱ¼ä£¬µ«ÊÇÒòΪѧϰ³É±¾½Ï¸ßµÈÔÒòÍÆ¹ã±È½Ï»ºÂý¡£
ÁíÍ⣬Õâ¸öʱÆÚƽ̨»¯Òѱ»ÌáÉÏÈճ̣¬ÒµÎñÍ´µã¾ö¶¨ÁËÎÒÃDZØÐë¿ìËÙʵʩģ¿éÕûÌåµÄ²ð·ÖºÍ¸´Ó㬶øÓÅÑŵÄÉè¼ÆÄ£Ê½²¢²»ÊʺϽâ¾öÕâÒ»ÀàÎÊÌâ¡£
¼´Ê¹´Ó¸´ÓÃÐԵĽǶÈÀ´¿´£¬ÕâÑùµÄÉè¼ÆÒ²»áʹµÃÒµÎñ¿ª·¢±äµÃ¸üΪ¸´ÔÓ¡¢µ÷ÊÔÀ§ÄÑ£¬¶ÔÓÚÐÂÈËÀ´ËµÄÑÒÔʤÈΣ¬×îÖÕÍÆ¹ãÂ䵨À§ÄÑ¡£
Öмä²ãʵ¼ù
ͨ¹ý¶à´Îʵ¼ù£¬ÎÒÃÇÈÏʶµ½ÒªÊµÏÖÁ½¶Ë´úÂ븴Ó㬻ù´¡¿âµÄͳһÊDZØÈ»µÄ¹¤×÷£¬ÊÇÆäËûÒ»Çй¤×÷µÄ»ù´¡¡£·ñÔò±ØÈ»µ¼Ö¸´ÔÓºÍÄÑÒÔά»¤µÄÉè¼Æ£¬×îÖÕµ¼ÖÂÁ½¶Ë¸´ÓÃÎÞ·¨¿ìËÙÍÆ½øÏÂÈ¥¡£
¼ÆËã»ú½çÓÐÒ»¾äÃûÑÔ£º¡°¼ÆËã»ú¿ÆÑ§ÁìÓòµÄÈκÎÎÊÌâ¶¼¿ÉÒÔͨ¹ýÔö¼ÓÒ»¸öÖмä²ãÀ´½â¾ö¡£¡±£¨Ôʼ°æ±¾³ö×Ô¼ÆËã»ú¿ÆÑ§¼Ò
David Wheeler£©ÎÒÃǵ±È»ÓÐÏë¹ýͨ¹ýÖмä²ãÉè¼ÆÆÁ±ÎÁ½¶ËµÄ»ù´¡¿â²îÒì¡£
ÀýÈçÍøÂç¿â£¬ÍâÂô App »ùÓÚ Volley ʵÏÖ£¬ÍâÂôƵµÀ»ùÓÚ Retrofit ʵÏÖ¡£ÎÒÃÇÔø¾ÔÚ
Volley ºÍ Retrofit Ö®ÉÏ·â×°ÁËÒ»²ãÍøÂç¿ò¼Ü£¬¶ÔÍⱩ¶ͳһµÄ½Ó¿Ú£¬Éϲã¿ÉÒÔÇл»µ×²ãÒÀÀµ
Volley »òÊÇ Retrofit¡£
µ«Õâ¸öÖмä²ã²¢Ã»ÓÐÉÏÏߣ¬×îÖÕÎÒÃǽ«Á½¶ËµÄÍøÂç¿âͳһ³ÉÁË Retrofit¡£
ÕâÀïÃæÓжà¸öÔÒò£º
1.Ê×ÏÈ Retrofit ±¾Éí¾ÍÊǽϸ߲ã´ÎµÄ·â×°£¬²¢ÇÒÓµÓÐÓÅÑŵÄÉè¼ÆÄ£Ê½£¬ÀíÂÛÉÏÎÒÃǺÜÄÑ·â×°Ò»Ì×À©Õ¹ÐÔ¸üÇ¿µÄ½Ó¿Ú¡£
2.Æä´Î³¤ÆÚÀ´¿´µ×²ãÍøÂç¿ò¼Ü±ä¸üµÄ·çÏÕ¼«µÍ£¬²¢ÇÒÊÊÅäÍøÂç²ãµÄ¸÷ÖÖ²å¼þÒ²ÊÇÒ»¼þ·Ñʱ·ÑÁ¦µÄÊÂÇ飬Òò´Ë±£³ÖÍøÂçÖмä²ãµÄÐԼ۱ȼ«µÍ¡£
3.´ËÍ⽫Á½¶ËµÄÍøÂçÇëÇó¶¼Ì滻ΪÖмä²ã½Ó¿Ú£¬ÏÔÈ»¹¤×÷Á¿Ô¶´óÓÚÖ»±£ÁôÒ»¶ËµÄÒÀÀµ¡£
4.ͨ¹ýʵ¼ùÎÒÃÇÈÏʶµ½£¬Öмä²ãÉè¼ÆÊÇÒ»°ÑË«Èн£¡£Èç¹û»ù´¡¿ò¼Ü±¾ÉíµÄÀ©Õ¹ÐÔ×㹻ǿ£¬Öмä²ãÉè¼Æ¾ÍÏԵöà´ËÒ»¾Ù£¬ÉõÖÁɥʧÁËÔÓпò¼ÜµÄÁ¼ºÃÌØÐÔ¡£
ƽ̨»¯Êµ¼ù
ºÃµÄ¼Ü¹¹Ô´ÓÚ²»Í£µØÑܱ䣬¶ø·ÇÉè¼Æ¡£¶ÔÓÚÍâÂô Android ¿Í»§¶ËµÄƽ̨»¯¼Ü¹¹¹¹½¨Ò²ÊǾÀúÁËͬÑùµÄ¹ý³Ì¡£
ÎÒÃÇ´Ó¿¼ÂÇÈçºÎ½â¾ö´úÂ븴ÓõÄÎÊÌ⣬Öð½¥µÄÑܱä³ÉÈçºÎÈ¥½â¾ö´úÂ븴ÓÃºÍÆ½Ì¨»¯µÄÁ½¸öÎÊÌâ¡£¶øÊµ¼ÊÉÏÍâÂôƽ̨»¯ÕýÊǽâ¾öÁ½¶Ë´úÂ븴ÓõÄÒ»¼ÁÁ¼Ò©¡£
ÎÒÃÇͨ¹ý½¨Á¢ÍâÂôƽ̨£¬½«ÏÖÓеÄÍâÂôÒµÎñ½µ¼¶ÎªÒ»¸öƵµÀ£¬½«ÍâÂôÒµÎñÒÔ aar µÄÐÎʽ·Ö±ð½ÓÈëµ½ÍâÂôƽ̨ºÍÃÀÍÅÆ½Ì¨¡£ÕâÑùÔÚ½â¾öÍâÂôƽ̨»¯µÄͬʱ£¬´úÂ븴ÓõÄÎÊÌâÒ²½«µÃµ½ÍêÃÀµÄ½â¾ö¡£
ƽ̨»¯¼Ü¹¹
¾¹ýÁËÕûÕûÒ»ÄêµÄ¼è¿à·Ü¶·£¬ÐγÉÁËÈçͼËùʾµÄÃÀÍÅÍâÂô Android ¿Í»§¶Ëƽ̨»¯¼Ü¹¹£¬ÈçÏÂͼ£º

´Óµ×²ãµ½¸ß²ãÒÀ´ÎΪƽ̨²ã¡¢ÒµÎñ²ãºÍËÞÖ÷²ã£º
1.ƽ̨²ã£¬ÄÚÈݰüÀ¨³ÐÔØÉϲãµÄÊý¾ÝͨÐźÍÒ³ÃæÌø×ª£»ÌṩÍâÂôºËÐÄ·þÎñ£¬ÀýÈçÉÌÆ·¹ÜÀí¡¢¶©µ¥¹ÜÀí¡¢¹ºÎï³µ¹ÜÀíµÈ£»ÌṩÅäÖùÜÀí·þÎñ£»ÌṩͳһµÄ»ù´¡ÉèÊ©ÄÜÁ¦£¬ÀýÈçÍøÂ硢ͼƬ¡¢¼à¿Ø¡¢±¨¾¯¡¢¶¨Î»¡¢·ÖÏí¡¢ÈÈÐÞ¡¢Âñµã¡¢Crash
Éϱ¨µÈ£»ÌṩÆäËû¹ÜÀíÄÜÁ¦£¬ÀýÈçÉúÃüÖÜÆÚ¹ÜÀí¡¢×é¼þ»¯µÈ¡£
2.ÒµÎñ²ã£¬ÄÚÈݰüÀ¨ÍâÂôÒµÎñºÍ´¹Ö±ÒµÎñ¡£
3.ËÞÖ÷²ã£¬ÄÚÈݰüÀ¨ Waimai App ¿ÇºÍÃÀÍÅÍâÂôƵµÀ Waimai-channel
¿Ç£¬ÕâÒ»²ãÓÃÓÚ Application µÄ³õʼ»¯¡¢dex ¼ÓÔØºÍÆäËû¸÷ÖÖ±ØÒªµÄ×é¼þ»ò»ù´¡¿âµÄ³õʼ»¯¡£
4.ÔÚ¹¹½¨Æ½Ì¨»¯¼Ü¹¹µÄ¹ý³ÌÖУ¬ÎÒÃÇÓöµ½ÕâÑùÒ»¸öÎÊÌ⣬ÈçºÎ³¤¾ÃµÄά³ÖÎÒÃÇÆ½Ì¨»¯¼Ü¹¹µÄ²ã¼¶±ß½ç¡£
ÊÔÏ룬Èç¹ûËùÓеĴúÂë¶¼ÔÚÒ»¸ö¹¤³ÌÀïÃæ¿ª·¢£¬Í¨¹ý°üÃû¡¢Ô¼¶¨È¥¹æ·¶²ã¼¶±ß½ç£¬ÈκÎÒ»¸ö½ô¼±µÄÐèÇ󶼿ÉÄÜÆÆ»µ²ã¼¶±ß½ç¡£
ά³Ö²ã¼¶±ß½çµÄ×îºÃ°ì·¨ÊÇʲô£¿ÎÒÃǵľÑéÊǹ¤³Ì¸ôÀë¡£
ƽ̨»¯µÄÿһ²ã¶¼È¥×ö¹¤³Ì¸ôÀ룬ҵÎñ²ãµÄÿ¸öÒµÎñ¶¼½¨Á¢×Ô¼ºµÄ¹¤³Ì¿â£¬ÊµÏÖ¹¤³Ì¸ôÀ롣ͬʱ£¬ÅäÌ×±àÒë½Å±¾£¬¼ì²éÒµÎñ¿âÖ®¼äÊÇ·ñ´æÔÚÏ໥ÒÀÀµ¹ØÏµ¡£
¹¤³Ì¸ôÀëµÄºÃ´¦ÊÇÏÔ¶øÒ×¼ûµÄ£º
ÿ¸ö¹¤³Ì¶¼¿ÉÒÔ¶ÀÁ¢±àÒë¡¢¶ÀÁ¢´ò°ü¡£
ÿ¸ö¹¤³ÌÄÚ²¿µÄÐ޸쬲»»áÓ°ÏìÆäËû¹¤³Ì¡£
ÒµÎñ¿â¹¤³Ì¿ÉÒÔ¿ìËÙ²ð·Ö³öÀ´£¬¼¯³Éµ½ÆäËû App ÖС£
µ«¹¤³Ì¸ôÀë´øÀ´µÄÁíÒ»¸öÎÊÌâÊÇ£¬Í¬²ã¼äµÄÒµÎñ¿âÐèҪͨÐÅÔõô°ì£¿Õâʱºò¾ÍÐèÒªÌṩҵÎñ¿âͨÐÅ¿ò¼ÜÀ´½â¾öÕâ¸öÎÊÌâ¡£
ÒµÎñ¿âͨÐÅ¿ò¼Ü
ÔÚ²ð·ÖÍâÂôÉ̼ÒÒµÎñ¿âµÄʱºò£¬ÎÒÃǾͷ¢ÕâÑùÒ»¸ö°¸Àý£ºÔÚÉ̼ÒÒ³ÓÐÒ»¸öÒµÎñ£¬µ±·¢ÏÖµ±Ç°É̼ÒÊÇ´òìȵģ¬¾Í»áµ¯³öÒ»¸ö¸¡²ã£¬ÍƼöÏàËÆµÄÉ̼ÒÁÐ±í£¬¶øÔÚÎÒÃÇ֮ǰ»®·ÖµÄÍâÂô×ÓÒµÎñ¿âÀïÃæ£¬ÏàËÆÉ̼ÒÁбíÓ¦¸ÃÊÇÊôÓÚÒ³Ãæ¿âÀïÃæµÄÄÚÈÝ¡£
ÄÇÔõôÈÃÉ̼ÒÒµÎñ¿â·ÃÎʵ½Ò³Ãæ¿âÀïÃæµÄ´úÂëÄØ£¿Èç¹ûÎÒÃǽ«É̼ҿâÈ¥ÒÀÀµÒ³Ãæ¿â£¬ÄÇÎÒÃǵIJ㼶±ß½ç¾Í»á±»´òÆÆ£¬ÎÒÃǵÄÒÀÀµ¹ØÏµÒ²»á±äµÃ¸´ÔÓ¡£
Òò´ËÎÒÃÇÐèÒªÔڼܹ¹ÖÐÌṩͬ²ã¼äµÄͨÐÅ¿ò¼Ü£¬ËüÈ¥½â¾ö²»´òÆÆ²ã¼¶±ß½çµÄÇé¿öÏ£¬Íê³Éͬ²ã¼äµÄͨÐÅ¡£
»ã×Üͬ²ã¼äͨÐŵij¡¾°£¬´óÖÂÉÏ¿ÉÒÔ»®·ÖΪ£º
1.Ò³ÃæµÄÌø×ª¡£
2.»ù±¾Êý¾ÝÀàÐ͵Ĵ«µÝ£¨°üÀ¨¿ÉÐòÁл¯µÄ¹²ÓÐÀà¶ÔÏóµÄ´«µÝ£©¡£
3.Ä£¿éÄÚ²¿×Ô¶¨Òå·½·¨ºÍÀàµÄµ÷Óá£
Õë¶ÔÉÏÊöÇé¿ö£¬ÔÚÎÒÃǵļܹ¹ÀïÃæÌṩÁ˶þÖÖÆ½¼¶¼äµÄͨÐÅ·½Ê½£ºscheme ·ÓɺÍÃÀÍÅ×Ô½¨µÄ ServiceLoaders
sdk¡£
scheme ·Óɱ¾ÖÊÉÏÊÇÀûÓà Android µÄ scheme ÔÀí½øÐÐͨÐÅ£¬ServiceLoader
±¾ÖÊÉÏÊÇÀûÓÃµÄ Java ·´Éä»úÖÆ½øÐÐͨÐÅ¡£
scheme ·Óɵĵ÷ÓÃÈçͼËùʾ£º

×îÖÕЧ¹û£ºËùÓÐÒµÎñÒ³ÃæµÄÌø×ª£¬¶¼ÐèҪͨ¹ýƽ̨²ãµÄ scheme ·ÓÉÈ¥·Ö·¢¡£Í¨¹ý scheme ·ÓÉ£¬ËùÓÐÒµÎñ¶¼µÃµ½½âñ²»ÔÙÐèÒªÏ໥ÒÀÀµ¶ø¿ÉÒÔʵÏÖÒ³ÃæµÄÌø×ªºÍ»ù±¾Êý¾ÝÀàÐ͵Ĵ«µÝ¡£
serviceloader µÄµ÷ÓÃÈçͼËùʾ£º

Ìṩ·½ºÍʹÓ÷½Í¨¹ýƽ̨²ãµÄÒ»¸ö½Ó¿Ú×÷Ϊ˫·½½»»¥µÄÔ¼Êø¡£Ê¹Ó÷½Í¨¹ýƽ̨²ãµÄ ServiceLoader
Íê³ÉÌṩ·½µÄʵÏÖ¶ÔÏó»ñÈ¡¡£
ÕâÖÖ·½Ê½¿ÉÒÔ½â¾öÄ£¿éÄÚ²¿×Ô¶¨Òå·½·¨ºÍÀàµÄµ÷Óã¬ÀýÈçÎÒÃÇ֮ǰÌáµ½ÁËÉ̼ҿâÐèÒªµ÷ÓÃÒ³Ãæ¿â´úÂëµÄÎÊÌâ¾Í¿ÉÒÔͨ¹ý
ServiceLoader ½â¾ö¡£
ÍâÂôÄÚºËÄ£¿éÉè¼Æ
ÔÚʵ¼ùµÄ¹ý³ÌÖУ¬ÎÒÃÇÒ²Óöµ½ÒµÎñ±¾Éí¾Í²»ºÃ»®·Ö²ã¼¶±ß½çµÄÒµÎñ¡£´ó¼Ò¿ÉÒÔ´ÓÃÀÍÅÍâÂôÈý²ã¼Ü¹¹Í¼ÉÏ£¬¿´³öÍâÂôÒµÎñ¿â£¬ÏñÉ̼ҡ¢¶©µ¥µÈ£¬ÊǺÍÍâÂôµÄ´¹ÀàÒµÎñ¿âÊÇͬ¼¶µÄ¡£
¶øÊµ¼ÊÉÏÍâÂôÒµÎñµÄ×ÓÒµÎñÊÇ·ñÓ¦¸ÃºÍ´¹ÀàÒµÎñ±£³Öͬ²ãÊÇÒ»¸öĿǰÎÞ·¨È·¶¨µÄÊÂÇé¡£
Ŀǰ£¬ÍâÂô½ÓÈëµÄ´¹ÀàÒµÎñÉ̳¬ÒµÎñ£¬ÊÇÁ¥ÊôÓÚÍâÂôÒµÎñµÄ×ÓÆµµÀ£¬ËüÒÀÈ»ÒÀÀµ×ÅÍâÂôµÄºËÐÄ Model¡¢ºËÐÄ·þÎñ£¬°üÀ¨ÉÌÆ·¹ÜÀí¡¢¶©µ¥¹ÜÀí¡¢¹ºÎï³µ¹ÜÀíµÈ¡£
Òò´ËĿǰËüºÍÍâÂôÒµÎñµÄÉ̼ҡ¢¶©µ¥ÕâÑùµÄ×ÓÒµÎñ¿âͬ²ãÊÇûÓÐÎÊÌâµÄ¡£µ«Ëæ×ÅÉ̳¬ÒµÎñµÄ·¢Õ¹£¬É̳¬ÒµÎñδÀ´¿ÉÄܻὨÉè×Ô¼ºµÄÉÌÆ·¹ÜÀí¡¢¶©µ¥¹ÜÀí¡¢¹ºÎï³µ¹ÜÀíµÄ·þÎñ£¬ÄÇôµ½Ê±É̳¬ÒµÎñ¾Í»áÉÏÉýµ½ºÍÍâÂôÒµÎñÒ»Ñùͬ²ãµÄÒµÎñ¡£
Õâʱºò£¬ÍâÂôºËÐĹÜÀí·þÎñ£¬´¦ÔÚÆ½Ì¨²ã£¬¾Í»áµ¼Ö¼ܹ¹µÄ²ã¼¶±ß½ç±äµÃ²»ÔÙÇåÎú¡£
ÎÒÃǵĽâ¾ö°ì·¨ÊÇͨ¹ýÉè¼ÆÒ»¸öÊôÓÚÍâÂôÒµÎñµÄÄÚºËÄ£¿éÀ´ÊÊӦδÀ´µÄ±ä»¯£¬ÄÚºËÄ£¿éµÄÉè¼ÆÈçͼ£º

ÄÚȦΪ»ù´¡Ä£ÐÍÀ࣬ÕâЩģÐÍÀ๹³ÉÁËÍâÂôºËÐÄÒµÎñ£¨´ÓÃŵê¡úµã²Ë¡ú¹ºÎï³µ¡ú¶©µ¥£©µÄ»ù´¡¡£
ÖмäȦΪÒÀÀµ»ù´¡Ä£ÐÍÀ๹½¨µÄ»ù´¡·þÎñ£¨CRUD£©¡£
×îÍâȦΪÍâÂôµÄ¸÷ά¶ÈÒµÎñ£¬ÏòÄÚÒÀÀµ»ù´¡Ä£ÐÍȦºÍÍâÂô»ù´¡·þÎñȦ¡£
Èç¹ûδÀ´È·¶¨ÍâÂôƽ̨ÐèÒª½ÓÈë¸ü¶àºÍÍâÂôƽ¼¶µÄÒµÎñ£¬ÇÒ×îÄÚȦ¶¼ÍêÈ«²»Ò»Ñù£¬ÎÒÃǽ«°ÑÍâÂôÄÚºËÄ£¿éÉÏÒÆ£¬ÔÚÍâÂôÒµÎñ×Ó¿âϽ¨Á¢¶ÔÄÚºËÄ£¿éµÄÒÀÀµ¡£
Èç¹ûδÀ´Ö»ÊÇÓиü¶àµÄÍâÂô×ÓÒµÎñµÄ½ÓÈ룬ÄǾͼÌÐø±£ÁôÎÒÃÇÏÖÔڵļܹ¹£»Èç¹ûδÀ´½ÓÈëµÄÒµÎñ»ù´¡Ä£ÐÍÀàÒ»Ñù£¬µ«×Ô¼ºµÄÒµÎñ·þÎñÐèÒª·Ö»¯£¬ÄÇôÎÒÃǽ«±£ÁôÄÚºËÄ£¿é×îºËÐĵÄÄÚȦ£¬²¢³éÏó³ö·þÎñ²ãÓÉÍâÂôºÍÉ̳¬Éϲã×Ô¼ºÊµÏÖÕæÕýµÄ·þÎñ¡£
ÒµÎñ¿â²ð·Ö
ÔÚ²ð·ÖÒµÎñ¿âµÄʱºò£¬ÎÒÃÇÃæÁÙ×ÅÕâÑùµÄÎÊÌ⣺ҵÎñÖ®¼äµÄ¹ØÏµÊǽÏΪ¸´Ôӵģ¬ÈçºÎÈ¥²ð·ÖÒµÎñ¿â£¬²ÅÊǽÏΪºÏÀíµÄÄØ£¿
Ò»¿ªÊ¼ÎÒÃÇ×¼±¸¸ù¾ÝÍâÂôÒµÎñºËÐÄÁ÷³Ì£ºÒ³Ãæ¡úÉ̼ҡúϵ¥£¬È¥²ð·ÖÍâÂôÒµÎñ¡£
µ«ÊÇËæ×ÅÍâÂô×ÓÆµµÀÒµÎñµÄ¿ìËÙ·¢Õ¹£¬×ÓÆµµÀÒµÎñÒ²½¨Á¢ÁË×Ô¼ºµÄÑз¢ÍŶӣ¬ÔÚÒ³Ãæ¡¢É̼ҡ¢Ïµ¥µÈ»·½Ú£¬Ò²¿ªÊ¼½¨Á¢×Ô¼ºµÄÒ³Ãæ¡£
Èç¹ûÎÒÃÇÈÔÈ»°´ÕÕÍâÂôϵ¥µÄÁ÷³ÌÈ¥²ð·Ö¿â£¬ÄÇÔÚͬһ¸ö¿âÖ®¼ä£¬¾Í»áÓÐÍâÂôÍŶӺÍÍâÂô×ÓÆµµÀÍŶӹ²Í¬¿ª·¢µÄÇé¿ö£¬ÕâÑùÖ°Ôð±ß½çºÜ²»ÇåÎú£¬ÔÚʵ¼ÊµÄ¿ª·¢¹ý³ÌÖУ¬¿Ï¶¨»á³öÏÖÀí²»ÇåµÄÇé¿ö¡£
ÎÒÃǶ¼ÖªµÀÈí¼þ¹¤³ÌÁìÓòÓÐËùνµÄ¿µÍþ¶¨ÂÉ£º
Organizations which design systems are constrained
to produce designs which are copies of the communication
structures of these organizations.
- Melvin Conway(1967)
·Òë³ÉÖÐÎĵĴó¸ÅÒâ˼ÊÇ£ºÉè¼ÆÏµÍ³µÄ×éÖ¯£¬Æä²úÉúµÄÉè¼ÆµÈͬÓÚ×éÖ¯Ö®ÄÚ¡¢×éÖ¯Ö®¼äµÄ¹µÍ¨½á¹¹¡£
ÔÚ¿µÍþ¶¨ÀíµÄÖ¸µ¼Ï£ºÎÒÃÇÈÏΪ¼¼Êõ¼Ü¹¹Ó¦¸Ã·´Ó³³öÍŶӵÄ×éÖ¯½á¹¹£¬Í¬Ê±£¬×éÖ¯½á¹¹µÄ±äǨ£¬Ò²Ó¦¸Ãµ¼Ö¼¼Êõ¼Ü¹¹µÄÑݽø¡£
ÃÀÍÅÍâÂôƽ̨ϰüº¬ÍâÂôÒµÎñºÍ´¹Ö±Æ·ÀàÒµÎñ£¬¶ÔÓÚÔÚÎÒÃÇÍŶÓÖÐÒѾÓÐÁË×éÖ¯½á¹¹£¬ÓÅÏÈ×éÖ¯½á¹¹£¬È¥²ð³ö¶ÀÁ¢µÄÒµÎñ¿â£¬·½±ã×ÓÒµÎñ¿âµÄͬѧÄÚ²¿¹µÍ¨Ð×÷£¬¼õÉÙËûÃÇ¿ç×éÖ¯¹µÍ¨µÄ³É±¾¡£
ͬʱ£¬ÎÒÃǽ«¸ºÔðÍâÂôÒµÎñµÄ´óÍŶӣ¬ÔÙ½øÒ»²½Ï¸»¯³ÉÒ³ÃæÐ¡×é¡¢É̼ÒС×éºÍ¶©µ¥Ð¡×飬ÓÉÕâЩС×éµÄͬѧȥÔÚÍâÂôÒµÎñÏÂÍê³É¸üϸά¶ÈµÄÍâÂô×ÓÒµÎñ¿â²ð·Ö¡£
¸ù¾Ý×éÖ¯½á¹¹»®·ÖµÄÒµÎñ¿â£¬ÌìÈ»µÄ´æÔÚÒµÎñ±ß½ç£¬Ã¿¸öͬѧ¶¼»á°´ÕÕ×Ô¼ºÒµÎñµÄÄ¿±êÈ¥¼ÌÐøÍêÉÆ×Ô¼ºµÄÒµÎñ¿â¡£ÕâÑùµÄ²ð¿â¶ÔÄÚÊǸßÄÚ¾Û£¬¶ÔÍâÊǵÍñîºÏµÄ£¬ÓÐЧµÄ½µµÍÁËÄÚÍ⹵ͨÐ×÷µÄ³É±¾¡£
¹¤³ÌÄÚ´úÂë¸ôÀë
ÔÚʵÏÖ¹¤³Ì¸ôÀëÖ®ºó£¬ÎÒÃÇ·¢ÏÖ¹¤³ÌÄÚ²¿µÄ´úÂ뻹ÊÇ¿ÉÒÔÏ໥ÒýÓõġ£¹¤³ÌÄÚ²¿Èç¹ûÒ²²»ÄÜʵÏÖ´úÂëµÄ¸ôÀ룬ÄÇô¹¤³ÌÄÚ²¿µÄ±ß½ç¾ÍÊÇÄ£ºýµÄ¡£
ÎÒÃÇÏ£Íû¹¤³ÌÄÚÖÁÉÙÄܹ»ÊµÏÖÒ³Ãæ¼¶±ðµÄ´úÂë¸ôÀ룬ÒòΪ Activity ÊÇ×é³ÉÒ»¸ö App µÄÒ³Ãæµ¥Ôª£¬Î§ÈÆÕâ¸ö
Activity£¬Í¨³£»áÓдóÁ¿µÄ´úÂë¼°×ÊÔ´Îļþ£¬ÎÒÃÇÏ£ÍûÕâЩ´úÂëºÍ×ÊÔ´ÎļþÊDZ»¼¯ÖйÜÀíµÄ¡£
ͨ³£ÎÒÃÇÏëµ½µÄ×ö·¨ÊÇÒÔ module ¹¤³ÌΪµ¥Î»µÄÏ໥¸ôÀ룬µ«ÔÚ module ÊÇÏà¶Ô±È½ÏÖØµÄÒ»¸öÔ¼Êø£¬ÄѵÀÿ¸ö
Activity ¶¼Òª½¨Ò»¸ö module Âð£¿
ÕâÑù´úÂë½á¹¹»á±äµÃºÜ¸´ÔÓ£¬¶øÇÒÕë¶ÔһЩ´óµÄÒµÎñÌ壬ÓÖ»áÐÎ³É¾Þ´ó»¯µÄ module¡£
ÄÇÎÒÃÇÓÖÏëµ½¹æ·¶´úÂ룬ÓðüÃûÈ¥ÈËΪԼ¶¨£¬µ«¿¿°üÃûÔ¼ÊøµÄ´úÂ룬±ß½çÄ£ºý£¬Ê±²»Ê±µÄ½ô¼±ÐèÇ󣬾ͰѰüÃûÔ¼¶¨´òÆÆÁË£¬¶øÇÒ×ÊÔ´ÎļþµÄ°Ú·ÅÒ²ÊÇÈÎÒâµÄ£¬Ç¨ÒƳɱ¾¸ß¡£
ÄÇÔõôȥ½â¾ö¹¤³ÌÄÚ²¿µÄ±ß½çÎÊÌâÄØ£¿¡¶Î¢ÐŵÄÄ£¿é»¯¼Ü¹¹Öع¹Êµ¼ù¡·Ò»ÎÄÖÐÌáµ½ÁËÒ»¸öÖØÒªµÄ¸ÅÄî p(pins)¹¤³Ì£¬p
¹¤³Ì¿ÉνÊǹ¤³ÌÄÚÔ¼Êø´úÂë±ß½çµÄÖØÒª·¨±¦¡£
ͨ¹ýÔÚ Gradle ÀïÃæÅäÖà sourceSets£¬¾Í¿ÉÒԸı乤³ÌÄڵĴúÂë½á¹¹Ä¿Â¼£¬Íê³É´úÂëµÄ¸ôÀ룬ÅäÖÃʾÀý£º

Ч¹ûÈçͼËùʾ£º

´ÓÉÏͼ¿ÉÒÔ¿´³ö£¬Õâ¸öÒµÎñ¿â±»ÒÔÒ³ÃæÎªµ¥Ôª²ð·Ö³ÉÁ˶à¸ö p ¹¤³Ì£¬Ã¿¸ö p ¹¤³ÌµÄ±ß½ç¶¼ÊÇÇå³þµÄ£¬ÊµÏÖÁ˹¤³ÌÄڵĴúÂë¸ôÀë¡£
¹¤³ÌÄÚ´úÂë¸ôÀë´øÀ´µÄºÃ´¦ÏÔ¶øÒ×¼û£º
1.¹¤³ÌʵÏÖÁË×îСÁ£¶ÈµÄ´úÂë±ß½çÔ¼Êø¡£
2.¹¤³ÌÄÚÄ£¿éÖ°ÔðÇåÎú¡£
3.ÒµÎñÄ£¿é¿ÉÒÔ±»¿ìËٵIJð·Ö³öÀ´¡£
´úÂ븴ÓÃ
p ¹¤³ÌÂú×ãÁ˹¤³ÌÄÚ´úÂë¸ôÀëµÄÐèÇ󣬵«ÊDZðÍüÁË£¬ÎÒÃÇÿ¸öÄ£¿éÔÚÍâÂôÁ½¸öÖÕ¶ËÉÏ£¨ÍâÂô App&ÃÀÍÅ
App£©ÉÏ¿ÉÄÜ´æÔÚ²îÒ죬Èç¹ûÄÜÔÚÄ£¿éÄÚ²¿ÊµÏÖÁ½¶Ë²îÒ죬ÎÒÃǵÄÄ¿±ê²ÅËã´ï³É¡£
»ùÓÚÉÏÊö¿¼ÂÇ£¬ÎÒÃÇÏëµ½ÁËʹÓà Gradle ÌṩµÄ productFlavors À´ÊµÏÖÁ½¶ËµÄ²îÒ컯¡£
Ϊ´Ë£¬ÎÒÃÇÐèÒª¶¨ÒåÁ½¸ö flavor£ºwm ºÍ mt¡£

µ«ÊÇ£¬ÕâÑùÉú³ÉµÄ p ¹¤³ÌÊDz¢Áеģ¬Ò²¾ÍÊÇ˵£¬¸÷¸ö p ¹¤³ÌÖÐËùÓеIJîÒ컯´úÂë¶¼ÐèÒª±»´æ·ÅÔÚÕâÁ½¸ö
flavor ¶ÔÓ¦µÄ SourceSet Ï£¬ÕâÆñ²»ÊǸúÄ£¿é¼ä´úÂë¸ôÀëµÄÀíÄîÏàÎ¥±³£¿
ÀíÏëµÄ½á¹¹ÊÇÔÚ p ¹¤³ÌÄÚ²¿½øÐÐ flavor »®·Ö£¬ÓÉ p ¹¤³ÌÄÚ²¿°üÈݲîÒ컯£¬¼ÌÐø¸Ä³É Gradle
½Å±¾ÈçÏ£º

×îÖÕ¹¤³Ì½á¹¹±ä³ÉÈçÏ£º

ͨ¹ý p ¹¤³ÌºÍ flavor µÄÁé»îÓ¦Óã¬ÎÒÃÇ×îÖÕ½«ÒµÎñ¿âÅäÖóÉÒÔ p ¹¤³ÌΪά¶ÈµÄÄ£¿éµ¥Ôª£¬²¢ÔÚ
p ¹¤³ÌÄÚ²¿¼æÈÝÁ½¶ËµÄ¹²ÐÔ¼°²îÒ죬´úÂ븴Óñ»ºÜºÃµÄ½â¾öÁË¡£
ͬʱ£¬Á½¶Ë²îÒìµÄÎÊÌâÊǹéÊôÔÚ p ¹¤³ÌÄÚ²¿×Ô¼º´¦ÀíµÄ£¬²¢Ã»Óн¨Á¢Öмä²ã£¬»ò½«²îÒìÅ׸øÉϲã¿Ç¹¤³ÌÈ¥Íê³É£¬ÕâÑùµÄÉè¼Æ×ñÊØÁ˱߽çÇåÎú£¬ÏòÏÂÒÀÀµµÄÔÔò¡£
µ«ÊÇ£¬¹¤³ÌÄÚ¸ôÀëÒ²´æÔÚÓ빤³Ì¸ôÀëÒ»ÑùµÄÎÊÌ⣺ͬ²ã¼¶ p ¹¤³ÌÐèҪͨÐÅÔõô°ì£¿
ÎÒÃÇÔÚ²ð·ÖÉ̼ҿâµÄʱºò£¬¾ÍÃæÁÙÕâÕâÑùµÄÎÊÌ⣬ÉÌÆ·»î¶¯Ò³ºÍÉÌÆ·ÏêÇéÒ³£¬¿ÉÒÔ¸ù¾ÝÒ³ÃæÎ¬¶È£¬È¥²ð·Ö³É 2
¸ö p ¹¤³Ì£¬ÕâÁ½¸öÒ³Ãæ¶¼»áÓõ½Í¬Ò»¸öÉÌÆ·ÑùʽµÄ item¡£
ÈçºÎÈÃͬ²ã¼äÉÌÆ·»î¶¯Ò³ p ¹¤³ÌºÍÉÌÆ·ÏêÇéÒ³ p ¹¤³Ì·ÃÎʵ½ÉÌÆ·Ñùʽ itemÄØ£¿
ÔÚʵ¼Ê²ð¿âµÄʵ¼ùÖУ¬ÎÒÃÇÖð½¥µÄ̽Ë÷³öÈý¼¶¹¤³Ì½á¹¹¡£Èý¼¶¹¤³Ì½á¹¹²»½ö¿ÉÒÔ½â¾ö¹¤³ÌÄÚp¹¤³ÌͨÐŵÄÎÊÌ⣬¶øÇÒ¿ÉÒÔ±£³Ö¼Ü¹¹µÄÁé»îÐÔ¡£
Èý¼¶¹¤³Ì½á¹¹
Èý¼¶¹¤³Ì½á¹¹£¬Ö¸µÄÊǹ¤³Ì¡úmodule¡úp ¹¤³ÌµÄÈý¼¶½á¹¹¡£
ÎÒÃÇ¿ÉÒÔ½«ÈκÎÒ»¸ö·Ç³£¸´ÔÓµÄÒµÎñ¹¤³ÌÄÚ²¿»®·Ö³ÉÈô¸É¸ö¶ÀÁ¢µ¥ÔªµÄ module ¹¤³Ì£¬Í¬Ê±¶ÀÁ¢µ¥ÔªµÄ
module ¹¤³Ì£¬ÎÒÃÇ¿ÉÒÔ¼ÌÐøÈ¥»®·ÖËüÄÚ²¿µÄ¶ÀÁ¢ p ¹¤³Ì¡£
ÒòΪ module ÊǾ߱¸±àÒëʱµÄ´úÂë¸ôÀëµÄ£¬±ß½çÊDz»ÈÝÒ×±»´òÆÆµÄ£¬Ëü¿ÉÒÔËæÊ±Éý¼¶ÎªÒ»¸ö¹¤³Ì¡£
ÐèҪͨÐÅµÄ p ¹¤³ÌÒÀÀµ module µÄÖ÷Ŀ¼£¬base Ŀ¼£¬Í¨¹ýbaseĿ¼ʵÏÖͨÐÅ¡£
¹¤³ÌºÍ module ¾ßÓбàÒëÉϸôÀë´úÂëµÄÄÜÁ¦£¬p ¹¤³Ì¾ßÓÐ×îÐ¡Ô¼Êø´úÂë±ß½çµÄÄÜÁ¦£¬ÕâÑùµÄÉè¼Æ¿ÉÒÔʹµÃ¹¤³ÌÄڱ߽çÇåÎú£¬ÏòÏÂÒÀÀµ¡£
Éè¼ÆÈçͼËùʾ£º

Èý¼¶¹¤³Ì½á¹¹µÄ×î´óºÃ´¦¾ÍÊÇ£¬Ã¿¼¶¶¼¿É°´ÕÕÐèÒªÁé»îµÄÉý¼¶»ò½µ¼¶£¬ÕâÑùÁé»îµÄÉý½µ¼¶£¬¿ÉÒÔËæÊ±ÊÊÓ¦ÍŶÓ×éÖ¯½á¹¹µÄ±ä»¯£¬±£³Ö¼Ü¹¹²ð·ÖºÏ²¢µÄÁé»îÐÔ£¬´Ó¶ø¶¯Ì¬µÄÂú×ãÁË¿µÍþ¶¨Àí¡£
¹¤³Ì»¯½¨Éè
ƽ̨»¯Ò»¸öÖ±¹ÛµÄ½á¹û¾ÍÊDzúÉúÁ˺ܶà×ӿ⣬ÈçºÎ¶ÔÕâЩ×Ó¿â½øÐÐÓÐЧµÄ¹¤³Ì»¯¹ÜÀí½«ÊÇÒ»¸öÓ°ÏìÍŶÓÑз¢Ð§ÂʵÄÎÊÌ⡣ĿǰΪֹ£¬ÎÒÃÇ´ÓÒÔÏÂÁ½¸ö·½Ãæ×öÁ˸Ľø¡£
Ò»¼üÇÐÔ´Âë
Ö÷¹¤³Ì¼¯³ÉÒµÎñ¿âʱ£¬ÓÐÁ½ÖÖÒÀÀµÄ£Ê½£ºaar ÒÀÀµºÍÔ´ÂëÒÀÀµ¡£Ä¬ÈÏÊÇ aar ÒÀÀµ£¬µ«ÊÇÔÚÆ½Ê±¿ª·¢Ê±£¬¾³£ÐèÒª´Ó
aar ÒÀÀµÇл»µ½Ô´ÂëÒÀÀµ£¬±ÈÈçÐÂÐèÇ󿪷¢¡¢bugfix ¼°ÅŲéÎÊÌâµÈ¡£
Õý³£Çé¿öÎÒÃÇÐèÒªÔÚ¸÷¸ö¹¤³ÌµÄ build. Öн« compile aar ÊÖ¶¯¸ÄΪ compile
project£¬Èç¹ûÒµÎñ¿âÒ²ÐèÒªÒÀÀµÆ½Ì¨¿âÔ´Â룬ҲҪ×öÀàËÆµÄ²Ù×÷¡£
ÈçÏÂͼËùʾ£º

ÕâÑùÊÖ¶¯²Ù×÷»á´øÀ´Á½¸öÎÊÌ⣺
build.gradle ¸Ä¶¯Æµ·±£¬Èç¹û¿ª·¢ÈËÔ±²»Ð¡ÐÄ push ÉÏÈ¥ÁË£¬½«»áÔì³É¸÷ÖÖ³åÍ»¡£
µ±ÒµÎñ¿âÔ½À´Ô½¶àʱ£¬ÕâÖָ͝µÄ³É±¾¾ÍÔ½À´Ô½´óÁË¡£
¼øÓÚÕâÖÖÐèÇó¾ß±¸Í¨ÓÃÐÔ£¬ÎÒÃÇ¿ª·¢ÁËÒ»¸ö Gradle ²å¼þ£¬Í¨¹ýÖ÷¹¤³ÌµÄÒ»¸öÅäÖÃÎļþ£¨±» git ignore£©£¬¿ÉÒ»¼üÇл»ÖÁÔ´ÂëÒÀÀµ¡£
ÀýÈçÐèÒªÔ´ÂëÒÀÀµÉ̼ҿ⣬ÄÇôֻÐèÒªÔÚÖ÷¹¤³ÌÖн«¸Ã¿âµÄÔ´ÂëÒÀÀµ¿ª¹Ø´ò¿ª¼´¿É¡£É̼ҿ⻹ÒÀÀµÆ½Ì¨¿â£¬Ä¬ÈÏÒ²ÊÇ
aar ÒÀÀµ£¬Èç¹ûÏë¸Ä³ÉÔ´ÂëÒÀÀµ£¬Ò²Ö»Ðè°Ñ¿ª¹Ø´ò¿ª¼´¿É¡£
Ò»¼ü´ò°ü
ÒµÎñ¿âÔö¶àÒԺ󣬹¹½¨Á÷³ÌÒ²±äµÃ¸´ÔÓÆðÀ´£¬ÎÒÃǽ»¸¶µÄ²úÎïÓÐÁ½ÖÖ£ºÍâÂô App µÄ apk ºÍÍâÂôƵµÀµÄ
aar¡£
ÍâÂô App µÄÇé¿ö»á¼òµ¥Ò»Ð©£¬ÔÚ Jenkins ÉϹØÁª¸÷¸öÒµÎñ¿âÖ¸¶¨·ÖÖ§µÄÔ´Â룬ֱ½Ó´ò°ü¼´¿É¡£
¶øÍâÂôƵµÀµÄÇé¿öÔò±È½Ï¸´ÔÓ£¬ÒòΪÊܵ½ÃÀÍÅÆ½Ì¨µÄһЩÏÞÖÆ£¬ÆµµÀ´ò°ü²»ÄÜÖ±½Ó¹ØÁª¸÷¸öÒµÎñ¿âµÄÔ´Â룬ֻÄÜÒÀÀµ
aar¡£
°´ÕÕ´«Í³×ö·¨£¬ÐèÒªÖð¸ö´òÒµÎñ¿âµÄ aar£¬È»ºóͳһÔÚÆµµÀ¹¤³ÌÖм¯³É£¬×îºóÔÙ´òƵµÀ aar£¬ÕâÑùЧÂÊʵÔÚÌ«µÍ¡£Îª´Ë£¬ÎÒÃǸĽøÁËÆµµÀµÄ´ò°üÁ÷³Ì¡£
ÈçÏÂͼËùʾ£º

ÏÈ´òƽ̨¿â aar£¬´òÍêºó×Ô¶¯Ìá PR µ½¸÷¸öÒµÎñ¿âÈ¥ÐÞ¸ÄÆ½Ì¨¿âµÄ°æ±¾ºÅ£¬½Ó×ÅÔÙÖð¸ö´¥·¢ÒµÎñ¿âÈ¥´ò
aar¡£
ÒµÎñ¿â´òÍê aar Ö®ºóÔÙ×Ô¶¯Ìá PR µ½ÆµµÀÖ÷¿âÈ¥ÐÞ¸ÄÒµÎñ¿âµÄ°æ±¾ºÅ£¬µÈÈ«²¿ÒµÎñ¿â aar ´òÍêºó×îºóÔÙ×Ô¶¯´¥·¢´òƵµÀÖ÷¿âµÄ
aar£¬ÖÁ´ËÒ»¼ü´ò°üÍê±Ï¡£
ƽ̨»¯×ܽá
´ÓËÑË÷¿â²ð·ÖµÄµÚÒ»´Î³¢ÊÔËãÆð£¬ÍâÂô Android ¿Í»§¶ËÔڼܹ¹ÉϵijÖÐøÌ½Ë÷ºÍʵ¼ùÒѾ¾ÀúÁË 2
Äê¶àµÄʱ¼ä¡£
Æð³õΪÁ˽â¾öÁ½¶Ë´úÂ븴ÓõÄÎÊÌ⣬ÎÒÃdz¢ÊÔ¹ý×ÔÉ϶øÏµÄÇ¿Ðвð·ÖºÍ¸´Ó㬵«ºÜ¿ì¾Í±©Â¶³ö²ã´Î»ìÂÒ¡¢±ß½çÄ£ºý´øÀ´µÄÎÊÌ⣬²¢ÇÒÈÏʶµ½Èç¹û²»ÄÜÌṩÁ½¶Ë²îÒ컯µÄ½â¾ö·½°¸£¬´úÂ븴ÓÃÊǺÜÄѳÖÐøµÄ¡£
ºóÀ´ÎÒÃÇÓÖ³¢ÊÔ¹ýÔËÓÃÉè¼ÆÄ£Ê½Ô¼Êø±ß½ç£¬ÏÈʵÏÖ½âñîÔÙ½øÐи´Ó㬵«ÔÚÍÆ¹ãÂ䵨¹ý³ÌÖÐÈÏʶµ½¸´ÔÓµÄÉè¼ÆºÜÄÑ¿ìËÙÍÆ½øÏÂÈ¥¡£
ÔÚÆ½Ì¨»¯¿ªÊ¼µÄʱºò£¬ÍŶÓÒѾÐγÉÁËÉè¼Æ¼òµ¥¡¢±ß½çÇåÎúµÄ¼Ü¹¹ÀíÄî¡£ÎÒÃǽ«ÕûÌå½á¹¹»®·ÖΪËÞÖ÷²ã¡¢ÒµÎñ²ã¡¢Æ½Ì¨²ã£¬²¢ÑϸñÔ¼Êø²ã´Î¼äµÄÒÀÀµ¹ØÏµ¡£
ÔÚÒµÎñÄ£¿é²ð·ÖµÄ¹ý³ÌÖУ¬ÎÒÃÇ½è¼øÎ¢ÐŵŤ³Ì½á¹¹·½°¸£¬°´ÕÕÈý¼¶¹¤³Ì½á¹¹»®·ÖÒµÎñ±ß½ç£¬ÊµÏÖÁé»îµÄ´úÂë¸ôÀ룬²¢½µµÍÁ˺óÐøÄ£¿éǨ³öºÍǨÈë³É±¾£¬Ê¹µÃ¼Ü¹¹¶¯Ì¬Âú×㿵Íþ¶¨ÂÉ¡£
ÔÚÁ½¶Ë´úÂ븴ÓõÄÎÊÌâÉÏ£¬ÎÒÃÇÈÏʶµ½ÒªÊµÏֿɳÖÐøµÄ´úÂ븴Ó㬱ØÐë×ÔÏÂÏòÉϵÄÖð²½Í³Ò»Á½¶Ëµ×²ãµÄ»ù´¡ÒÀÀµ£¬Í¬Ê±ÓÖÄÜÈÝÒ×µÄÖ§³ÖÁ½¶ËÉϲãÒµÎñµÄ²îÒ컯´¦Àí¡£
ʹÓà Flavor ¹ÜÀíÁ½¶ËµÄ²îÒì´úÂ룬¾¡Á¿¼õÉÙÏòÉÏÒÀÀµ£¬ÔÚ¾ßÌåʵʩʱӦÓÃ֮ǰ»ýÀ۵ĽâñîÉè¼ÆµÄ¾Ñ飬´Ó¶øÂú×ãÁ˼ܹ¹µÄ¿ÉÉìËõÐÔ¡£
ûÓÐÒ»¸ö·½°¸ÄÜ»ñµÃÿ¸öÈ˵ÄÔÞͬ¡£ÔÚÆ½Ì¨»¯µÄʵʩ¹ý³ÌÖУ¬ÍŶӳÉÔ±¶à´Î¶Ô·½°¸Ñ¡ÐÍ·¢Éú¹ýÕë·æÏà¶ÔµÄÌÖÂÛ¡£
ÕâʱÎÒÃÇ»áÅ׿ª¼¼Êõ·½°¸£¬»Øµ½ÎÊÌâ±¾Éí£¬È¥ÖØÐÂÉóÊÓÒµÎñµÄÍ´µã£¬ÁгöÒª½â¾öµÄÎÊÌ⣬ÔٻعýÍ·À´¿´ÄÄÒ»¸ö·½°¸Äܹ»½â¾öÎÊÌâ¡£
ËäÈ»ÎÒÃDz¢²»³£³£Õâô×ö£¬µ«Ä³Ð©Ê±¿ÌÒ²»áÇ¿ÖÆ¾ö²ßºÍʵʩ£¬Óöµ½ÎÊÌâÔÙ¸´Å̺͵÷Õû¡£
ÈκÎÒ»ÖÖÉè¼ÆÀíÄî¶¼ÓÐÆäÊÊÓó¡¾°¡£ÎÒÃÇÔÚ²»¶Ï¹Ø×¢ÒµÄÚһЩÓÅÐãµÄ¼Ü¹¹ºÍÉè¼ÆÀíÄÒÔ¼°¹«Ë¾ÄÚ²¿ÃÀÍÅ App¡¢µãÆÀ
App ÍŶӵį½Ì¨»¯Êµ¼ù¾Ñ飬ѧϰºÍ½è¼øÁËÐí¶àÓÅÐãµÄÉè¼ÆË¼Ï룬µ«Ò²ÓÉÓÚäĿÀÄÓòȹý²»ÉÙ¿Ó¡£
ÎÒÃÇÈÏʶµ½¼Ü¹¹µÄÑ¡ÔñÕýÈçÆäËû¼¼ÊõÎÊÌâÒ»Ñù£¬Ó¦¸ÃÊÇÃæÏòÎÊÌâµÄ£¬¶ø²»ÊÇÃæÏò¼¼Êõ±¾Éí¡£
¼Ü¹¹µÄÑݽø±ØÐëÔÚÀíÂÛºÍʵ¼ùÖн»ÌæÇ°ÐУ¬ÍÑÀëÁËÆäÖÐÒ»¸ö̸Âۼܹ¹£¬¶¼½«ÊǸö±¯¾ç¡£
Õ¹Íû
ƽ̨»¯Ö®ºó£¬¸÷ÒµÎñÍŶӵÄÐ×÷¹ØÏµºÍ¿ª·¢Á÷³Ì¶¼·¢ÉúÁ˺ܴóת±ä¡£ÔÚÈçºÎÌáÉýƽ̨֧³ÖÄÜÁ¦£¬ÈçºÎ±£³Ö¼Ü¹¹µÄÎȶ¨ÐÔ£¬ÈçºÎʹµÃ¸÷ÒµÎñ½øÒ»²½½âñîµÈÎÊÌâÉÏ£¬ÎÒÃÇÓÖ½«Ãæ¶ÔеÄÎÊÌâºÍÌôÕ½¡£
ÆäÖÐÓÐÈý¸öÎÊÌâÊÇØ½´ýÎÒÃǽâ¾öµÄ£º
1.Ҫȷ±£ÔÚ³¤ÆÚµÄÒµÎñµü´úÖмܹ¹²»±»ÆÆ»µ£¬³ýÁËÁ÷³Ì¹æ·¶Ö®Í⣬»¹ÐèÒªÔÚ±¾µØ±àÒë¡¢Ô¶³ÌÌá½»¡¢´úÂëºÏ²¢¡¢´ò°üÌá²âµÈ¸÷¸ö½×¶Î½¨Á¢¸ü½¡È«µÄ¼ì²é¹¤¾ßÀ´Ô¼Êø£¬¶øÄ¿Ç°ÕâЩ¹¤¾ßÁ´»¹²»ÍêÉÆ¡£
2.²å¼þ»¯¼Ü¹¹ÊÇÆ½Ì¨ÐÍ App ¼¯³ÉµÄ×îºÃ·½Ê½£¬²»½öʹµÃ×ÓÒµÎñ¾ß±¸¶¯Ì¬·¢²¼µÄÄÜÁ¦£¬»¹¿ÉÒÔ½â¾öÁîÈËÍ·Ì۵ıàÒëËÙ¶ÈÎÊÌ⡣ĿǰÃÀÍÅÆ½Ì¨ÒѾÔÚ²¿·ÖÒµÎñÉϽϺõÄʵÏÖÁ˲å¼þ»¯¼¯³É£¬ÍâÂôÕýÔÚ¸ú½ø¡£
3.Í³Ò»Ò³Ãæ¼¶¿ª·¢µÄ±ê×¼»¯¿ò¼Ü£¬¿ÉÒÔ½â¾ö´úÂëµÄ¿Éά»¤ÐÔ¡¢¿É²âÊÔÐÔ£¬ºÍ¸üϸÁ£¶ÈµÄ¿É¸´ÓÃÐÔ£¬²¢ÇÒÓÐÀûÓÚ¸÷ÖÖ×Ô¶¯»¯·½°¸µÄʵʩ¡£Ä¿Ç°ÎÒÃÇÕýÔÚ²¿·ÖÒµÎñ³¢ÊÔ£¬ºóÐø»á³ÖÐøÍÆ½ø¡£ |