±à¼ÍƼö: |
±¾ÎÄÀ´×Ô¾ò½ð,Ö÷Òª½²½âÁË×é¼þ»¯½á¹¹¡¢½¨Á¢×é¼þ»¯ÏîÄ¿½á¹¹¡¢×é¼þ¼äͨÐÅÒÔ¼°ÓÅ»¯¼ÓËÙ£¬¸ü¶àÄÚÈÝÇë²ÎÔÄÏÂÎÄ¡£ |
|
´ÓÈ¥Ä꿪ʼ£¬¾ÍÂ½Â½ÐøÐøµÄÔ½À´Ô½¶àµÄapp¿ªÊ¼½øÐÐÁË×é¼þ»¯Öع¹¡£Ò²Óкܶà·Ç³£ºÃµÄ×é¼þ»¯·½°¸²©¿Í·ÖÏí£¬ËùÒÔÕâÆªÎÄÕ²¢²»ÒÔ½éÉÜ×é¼þ»¯·½°¸×÷ΪÖ÷Ì⣬¶øÊÇÎÒÃÇÓ¦¸ÃÈçºÎÒ»²½²½µÄ´ÓÒ»¸ö¹ÅÀϵÄÏîÄ¿£¬ÂýÂýÒ»²½²½²ð·Ö£¬Íê³É×é¼þ»¯Öع¹µÄ¡£
×é¼þ»¯µÄ˼ÏëÊǺõ쬵«ÊDz¢²»ÊÇËùÓеÄÏîÄ¿¶¼ÊʺÏʹÓÃ×é¼þ»¯µÄ·½Ê½½øÐпª·¢£¬ËùÒÔÒ»°ãÐèҪʹÓÃ×é¼þ»¯µÄÏîÄ¿¡£»ù±¾¶¼ÊǾ߱¸ÏîÄ¿µü´úʱÆÚ¾ÃÔ¶¡¢ÏîÄ¿´ó¶øÓ·Öס¢ÏîÄ¿×é³ÉÔ±¶à¹µÍ¨³É±¾´ó¡¢ÏîÄ¿¸´ÔÓά»¤³É±¾ºÜ¸ßµÈÌØµã¡£ÕâÀàµÄÏîÄ¿²Å»áÓÐ×é¼þ»¯µÄÓÃÎäÖ®µØ¡£
¶øÆäËûµÄһЩÈËÔ±ÉÙ¡¢¹¦Äܼòµ¥µÄСÏîÄ¿¡£¾Í±ðÈ¥Ö±½Ó¿¼ÂÇ×é¼þ»¯ÁË¡£ÀÏÀÏʵʵֱ½ÓߣÂë¾ÍÐÐÁË¡£Ç¿ÐÐʹÓÃ×é¼þ»¯Ö»»áÔö¼Óά»¤³É±¾Ó뿪·¢³É±¾¡£µÃ²»³¥Ê§~
×é¼þ»¯½á¹¹
×é¼þ»¯´ÓÀ´²»ÊÇÒ»¸öËµÖØ¹¹¾ÍÄÜÖØ¹¹µÄ¶«Î÷£¬ÔÚ½øÐÐ×é¼þ»¯Öع¹Ö®Ç°¡£×îºÃÏȶÔ×é¼þ»¯µÄ½á¹¹ÓÐÒ»¸ö»ù±¾µÄÀí½â£º

ÉÏͼΪ×é¼þ»¯×î»ù±¾µÄ½á¹¹¡£´óÖ¿ÉÒÔ¿´³ö¡£×é¼þ»¯Ö÷Òª·ÖΪÈý²ã£º
1.app¿Ç£º
´ËΪ×é¼þ»¯µÄÔËÐÐÈÝÆ÷£¬¿ÇÖж¨ÒåappÈë¿Ú£¬ÒÀÀµÒµÎñ×é¼þ½øÐÐÔËÐС£
2.ÒµÎñ×é¼þ£º
´ËΪ×é¼þ»¯µÄÖмä²ã£¬ÔÚÒ»¸ö´óÐÍÏîÄ¿×éÖС£¶¼ÓÐϸ·ÖÏÂÀ´µÄ²»Í¬µÄÒµÎñ×飬±ÈÈç¹ÜµÇ¼µÄ¡¢¹Ü¹ºÎïµÄ¡¢¹ÜÊÓÆµµÄµÈµÈ¡£ÕâЩ²»Í¬ÒµÎñ×é·Ö±ðά»¤Ò»¸ö¸÷×ÔµÄÒµÎñ×é¼þ£¬ÒÔ´ïµ½¸÷×ÔÒµÎñ×éÒµÎñ½âñîµÄЧ¹û¡£
ÔÔòÉÏÀ´Ëµ£º¸÷¸öÒµÎñ×é¼þÖ®¼ä²»ÄÜÓÐÖ±½ÓÒÀÀµ£¡ËùÓеÄÒµÎñ×é¼þ¾ùÐèÒª¿ÉÒÔ×öµ½¶ÀÁ¢ÔËÐеÄЧ¹û¡£¶ÔÓÚ²âÊÔµÄʱºò£¬ÐèÒªÒÀÀµ¶à¸öÒµÎñ×é¼þµÄ¹¦ÄܽøÐм¯³É²âÊÔµÄʱºò¡£¿ÉÒÔʹÓÃapp¿Ç½øÐжà×é¼þÒÀÀµ¹ÜÀíÔËÐС£
3.»ù´¡×é¼þ£º
»ù´¡×é¼þÒ²½Ð»ù´¡¹¦ÄÜ×é¼þ¡£´Ë²¿·Ö×é¼þΪÉϲãÒµÎñ×é¼þÌṩ»ù±¾µÄ¹¦ÄÜÖ§³Ö¡£Èç»ù´¡ÍøÂç×é¼þ¡¢»ù´¡ÊÓͼ×é¼þ¡¢»ù´¡Êý¾Ý´æÈ¡×é¼þµÈ£¬ÒÔ¼°×é¼þ»¯µÄºËÐÄͨÐÅ×é¼þ£ºÂ·ÓÉ×é¼þ¡£ÒÔÉϼ´ÊÇ×é¼þ»¯µÄ×î»ù±¾½á¹¹£¬µ±È»ÔÚÕæÕýµÄÏîĿ֮ÖУ¬²»¿ÉÄÜ»á´æÔÚÕâô¼òµ¥µÄ½á¹¹£¬¶¼ÊÇÐèÒª¸ù¾ÝÄãµÄ¾ßÌåÏÖ×´½øÐÐÀ©³äµÄ¡£±ÈÈçÄã¿ÉÒÔÔÚ»ù´¡×é¼þÓëÒµÎñ×é¼þÖ®¼ä£¬Ìí¼ÓÒ»²ãÌØÊâµÄ¹¦ÄÜ×é¼þ¡£´Ë²ãµÄ¹¦ÄÜ×é¼þÖ»±»Ò»¸ö»òÕß¶à¸ö×é¼þ½øÐÐÒÀÀµ£¬Ö»Òª²»ÆÆ»µÕâ²ãÓÉϵ½Éϵ¥ÏòÒÀÀµÁ´¼´¿É£º

×¼±¸
×é¼þ»¯Öع¹´ÓÀ´¶¼²»ÊÇËµÖØ¹¹¾ÍÄÜÖØ¹¹µÄ£¬Ê×ÏȵÃÓиöÇ¿ÓÐÁ¦µÄÁ쵼ȥ֧³ÖÖ´ÐУ¬È»ºóÄã²Å¿ÉÄÜÈ¥¾ßÌåµÄ½øÐÐÖØ¹¹¡£
Æä´Î£¬ÄãµÃÌáǰ¶ÔÄãÃǵÄÏîÄ¿½øÐдó·½ÏòµÄ·Ö²ã½á¹¹»®·Ö£¬ÄÄЩ¶«Î÷ÐèÒª·ÅÔÚʲô²ã¡£ÐèÒªÌáǰÓиöÃ÷È·µÄ»®·Ö¡£
ÖØ¹¹ÄãµÄ»ù´¡×é¼þ£º¼´ÄãµÄ¸÷ÖÖ»ù´¡¹¦ÄÜ¿ò¼ÜÐèÒªÌáǰ´ÓÏîÄ¿Öвð·Ö³öÀ´¡£°üÀ¨ÍøÂ硢ͼƬ¼ÓÔØ¡¢Êý¾Ý´æ´¢¡¢Âñµã¡¢Â·Óɵȡ£
½¨Á¢×é¼þ»¯ÏîÄ¿½á¹¹
½¨Á¢»ù´¡×é¼þºÏ¼¯
ÄãÐèÒª´´½¨Ò»¸ö»ù´¡library module¡£ÓÃÓÚÒÀÀµËùÓеĻù´¡¹¦ÄÜ×é¼þ£¬Èçbaselib¡£
×÷ÓãºÓÃÓÚͳһÒÀÀµ»ù´¡¹¦Äܿ⣬²¢Í³³ï¡¢¹ØÁªºÃ¸÷¹¦ÄÜ¿ò¼ÜµÄ¹ØÏµ£¬×öºÃ¸÷¹¦ÄÜ¿âµÄ³õʼ»¯·â×°²Ù×÷¡£ÌṩÉϲãÒµÎñ×é¼þÖ±½Óµ÷Óá£
´´½¨¸÷×ÔÒµÎñÏßµÄÒµÎñ×é¼þ¼°app¿Ç
ÓëÆÕͨµÄ×é¼þ»¯·½°¸×ö·¨²»Í¬£¬ÆÕͨµÄ×é¼þ»¯·½°¸ÊÇʹÓÃÒ»¸ö±äÁ¿½øÐпØÖÆ¡£Ê¹µÃÒµÎñ×é¼þ¿ÉÒÔÔÚapplicationÓëlibraryÖ®¼ä½øÐÐÁé»îÇл»¡£Ê¹µÃ×é¼þÒ²ÊÇapplication¡£applicationÒ²ÊÇ×é¼þ¡£
µ«ÊÇÕâÖÖ×ö·¨£¬ÒòΪ×ÜÊÇÔÚlibraryModuleÓëapplicationModuleÖ®¼ä½øÐÐÇл»¡£ºÜÈÝÒ×µ¼Ö¸÷ÖÖ»ìÂÒÎÊÌ⣺±ÈÈçManifest³åÍ»£¬RÎļþ³åÍ»µÈ¡£
ËùÒÔÎÒÃDzÉÓõÄÊǶàapp¿Ç·Ö×é¼ÓÔØµÄ·½Ê½£º

¿ÉÒÔ¿´µ½£¬Ã¿¸öÒµÎñÏßµÄÒµÎñ×é¼þ¡£¶¼·Ö±ðÓÐÒ»¸ö¸÷×ÔµÄapp¿ÇÄ£¿é¡£¶øÖ÷app¿ÇÒÀÀµËùÓеÄÒµÎñ×é¼þ. ÔÚ½øÐÐÒµÎñ¿ª·¢Ê±¡£¸÷×ÔÒµÎñ×é³ÉÔ±¿ÉÒÔÖ±½ÓÔËÐи÷×ÔµÄapp¿ÇÄ£¿é½øÐвâÊÔ£¬Ö÷app¿Ç½øÐÐÈ«Á¿´ò°ü¡£
ÔÚ²ð·Ö³õÆÚ£¬Õâ¸öʱºòµÄ½¨ÒéÒÔÔ±¾µÄÏîÄ¿application×÷ΪÖ÷app¿Ç¡£
Ô¤ÁôÒ»¸öºËÐÄÒµÎñ×é¼þ³öÀ´¡£±ÈÈçµÇ¼×é¼þ£º´ËÀà×é¼þΪҵÎñ×é¼þ£¬µ«ÊÇÓÖ±»ËùÓÐÆäËû×é¼þËùÐèÒª£¬ËùÒÔ½«Æäµ¥¶À×÷ΪºËÐÄÒµÎñ×é¼þ¶ÀÁ¢³öÀ´¡£È»ºó±ðµÄÒµÎñ×é¼þ¡£Í¨¹ý¸÷×ÔµÄapp¿Ç¹¤³Ì¡£ÒÀÀµ½øÈë¼´¿É£ºÔÙ´ÎÌáÐÑÒµÎñ×é¼þÖ®¼ä²»ÄÜÖ±½Ó½øÐÐÒÀÀµ£º

ÕâÖÖ·Ö²ã½á¹¹µÄºÃ´¦ÓУº
ÒµÎñ×é¼þ²»ÔÙÔÚlibraryÓëapplicationÖ®¼ä½øÐÐÇл»¡£¿ª·¢»·¾³Í³Ò»£¬²»Ò׳öÏÖ»·¾³Çл»³åÍ»
app¿Çµ¥¶À¶ÀÁ¢³öÀ´¡£¿ÉÒÔÔڿǹ¤³ÌÖÐÌí¼ÓÒ»Ð©ÌØÓеĶÀÁ¢´úÂ룬ÓÉÓÚ¸÷×ԵĿǹ¦Äܲ»»á²ÎÓëµ½Ö÷app¿ÇÖÐÈ¥½øÐбàÒ룬ËùÓÐÕâÀïÃæÄã¿ÉÒÔÕë¶Ô¸÷×ÔµÄÒµÎñ¡£Ìí¼ÓһЩ¶ÀÁ¢µÄÈë¿Ú¹ÜÀíÀà¡£±ÈÈçÌí¼ÓÒ»¸öRootActivity£¬ÔÚ´ËÌí¼ÓÒ»¸ö¿ÉÒÔÌø×ªµ½ÈÎÒâÒ³ÃæµÄÁÐ±í£¬·½±ã½øÐвâÊÔÔËÐеȡ£
gradleͳһÅäÖùÜÀí
×é¼þ»¯Öع¹ºó£¬module±ä¶àÁË£¬ËùÒÔ¾ÍÐèÒª¶ÔËùÓÐmoduleµÄһЩgradle½Å±¾½øÐÐͳһÅäÖùÜÀí¡£±ÜÃâ»ìÂÒ¡£
н¨dependencies.gradle½Å±¾¡£Ìí¼ÓͳһµÄÒÀÀµ°æ±¾ºÅ¹ÜÀí£º
ext {
COMPILE_SDK_VERSION = 25
BUILD_TOOLS_VERSION = '25.0.0'
MIN_SDK_VERSION = 16
TARGET_SDK_VERSION = 19
// SUPPORT
SUPPORT_VERSION = '23.2.0'
SUPPORTDEPS = [
supportV4 : "com.android.support:support-v4:${SUPPORT_VERSION}",
supportV13 : "com.android.support:support-v13:${SUPPORT_VERSION}",
appcompatV7 : "com.android.support:appcompat-v7:${SUPPORT_VERSION}",
cardview : "com.android.support:cardview-v7:${SUPPORT_VERSION}",
design : "com.android.support:design:${SUPPORT_VERSION}",
annotations : "com.android.support:support-annotations:${SUPPORT_VERSION}",
multidex : 'com.android.support:multidex:1.0.1'
]
...
}
|
´Ë½Å±¾Í³Ò»ÅäÖùÜÀíËùÓеİ汾ºÅÏà¹ØµÄÊý¾Ý¡£ÍⲿÐèҪʹÓð汾ºÅ¼°ÒÀÀµÊ±£¬ÐèҪͳһ´Ó´ËÎļþÅäÖÃÊôÐÔÖнøÐжÁÈ¡¡£±ÈÈçÒªÒÀÀµsupportV4°ü£º
compile "${SUPPORTDEPS.supportV4}"
|
¶¨ÒåbaseConfig.gradle¡£Í³Ò»ÅäÖÃ×é¼þ»ù´¡±àÒë½Å±¾
boolean isAppModule
= project.plugins.hasPlugin('com.android.application')
android {
compileSdkVersion Integer.parseInt("${COMPILE_SDK_VERSION}")
buildToolsVersion "${BUILD_TOOLS_VERSION}"
lintOptions {
abortOnError false
}
defaultConfig {
if (isAppModule) {
applicationId "com.haoge.component.demo"
}
minSdkVersion Integer.parseInt("${MIN_SDK_VERSION}")
targetSdkVersion Integer.parseInt("${TARGET_SDK_VERSION}")
versionCode Integer.parseInt("${DEFAULE_CONFIG.versionCode}")
versionName "${DEFAULE_CONFIG.versionName}"
}
}
|
ÕâÑù¡£¾Í¿ÉÒÔʹÓÃapplyÓï·¨¡£ÈÃËùÓÐ×é¼þmodule¡£¶¼Í³Ò»ÒÀÀµ´Ëgradle½Å±¾¡£½øÐÐͳһ»·¾³ÅäÖÃÁË¡£
ϸÐĵãµÄ¿ÉÒÔ·¢ÏÖ¡£ÎÒÔÚbaseConfigÖУ¬Ìí¼ÓÁËĬÈϵÄapplicationIdµÄÖ¸¶¨¡£ÕâÊÇÒòΪ¶ÔÓڴ󲿷ÖÓ¦ÓöøÑÔ¡£¶¼ÓÐÓùý¸÷ÖֵĵÚÈý·½sdk¡£ÌرðÊǵÚÈý·½µÇ¼£¬ÕâÖÖµÄsdk¿ò¼Ü¡£ºÜ¶à¶¼»áÐèÒª½øÐаüÃûÑéÖ¤µÄ£¬ËùÒÔ½¨ÒéÓдËÖÖÇé¿öµÄ£¬ÔÚ´ËÌí¼ÓÉÏĬÈϵÄapplicationIdÖ¸¶¨½ÏºÃ¡£
Èç¹ûÓÐÏÓÂé·³µÄÓÖ¶¯ÊÖÄÜÁ¦Ç¿µÄ¡£¿ÉÒÔ¿¼ÂÇ×Ô¼º·â×°¸ögradle²å¼þÀ´½øÐÐͳһÅäÖùÜÀí
Ϊ×é¼þÌí¼Ó×ÊԴǰ׺
ÎÒÃÇÐèÒª¶Ô¸÷×ÔµÄ×é¼þ£¬·Ö±ðÉèÖÃËû×ÔÉíµÄ×ÊԴǰ׺À´×÷ΪÃüÃûÔ¼Êø£¬±ÜÃâ³öÏÖ²»Í¬µÄ×é¼þ¶Ô²»Í¬µÄ×ÊÔ´ÆðÁËͬһ¸öÃüÃû£¬µ¼Ö±àÒë³åÍ»µÈÎÊÌâ¡£
android {
resourcePrefix 'lg_'
} |
Õâ¸ö×ÊԴǰ׺µÄ×÷ÓÃÊÇ£ºµ±ÄãÔÚ¸ÃmoduleÏ´´½¨ÁËÒ»¸ö×ÊÔ´ÃüÃûʱ£¬ÈôÃû×Ö²»ÄÜÓë´Ëǰ׺½øÐÐÆ¥Å䣬Ôò½«»á½øÐм´Ê±ÌáÐÑ¡£±ÜÃâ³åÍ»¡£
´óÎļþ×ÊÔ´¡¢Í¼Æ¬×ÊԴͳһ¹ÜÀí
×é¼þ»¯Ö®ºó¡£×ÊÔ´¹ÜÀíÒ²ÊǸöÎÊÌ⣬ͼƬ×ÊÔ´¡¢assets×ÊÔ´¡¢rawÎļþ×ÊÔ´µÈ¡£¶¼¾ßÓÐÕ¼ÓÃ×ÊÔ´´ó¡¢»ù±¾ºÜÉÙÐ޸ĵÈÌØµã¡£ËùÒÔÕâÀï×îºÃ½«Æäµ¥¶À²ð·Ö³öÀ´¡£Í³Ò»Ìṩ¸øËùÓÐ×é¼þ½øÐÐʹÓãº
ËùÒÔ£¬¿ÉÒÔ¿¼Âǽ«´ËÀà´óÎļþ×ÊÔ´£¬Í³Ò»·ÅÈë×é¼þ»¯µÄ×îµ×²ã¡£Ê¹µÃ²»Í¬×é¼þ²»ÓÃ×Ô¼ºµ¥¶Àά»¤Ò»·Ý´Ë´óÎļþ×ÊÔ´¡£±ÜÃâ×ÊÔ´À˷ѵÄÏÖÏó¡£±ÈÈç¿ÉÒÔÖ±½Ó½«´Ë²¿·Ö×ÊÔ´¡£Ö±½Ó·ÅÈëbaselibÖУ¬×÷Ϊ»ù´¡¹¦ÄÜÌṩ¿â½øÐÐʹÓá£
×öºÃ¸÷×é¼þµÄapplicationÅÉ·¢
¿ÉÄÜÓÐÈË»áÎÊ£ºÎªÊ²Ã´Òª×ö×é¼þµÄapplicationµÄÉúÃüÖÜÆÚÅÉ·¢£¿
¾Ù¸öÀõ×Ó£º¶¼ÖªµÀ¡£ÍøÂç¿â¡¢Í¼Æ¬¼ÓÔØ¿âµÈ£¬¶¼ÐèÒª½øÐжÔÓ¦µÄ³õʼ»¯²Ù×÷²ÅÄܽøÐÐʹÓõ쬵«ÊÇÔÚ×é¼þ»¯ÖУ¬Èç¹û²»½øÐи÷×ÔapplicationµÄÅÉ·¢¡£²»ÄܽøÐÐÒ»¸öͳһÁ÷³ÌµÄ³õʼ»¯²Ù×÷¡£ÄÇô¿ÉÄÜÄã×é¼þAÐèÒª×Ô¼ºÊÖ¶¯Ð´»ù´¡¿âµÄ³õʼ»¯²Ù×÷¡£×é¼þB¡¢×é¼þCÒ²ÐèÒª¡£×îºóÄãµÄÖ÷app¿ÇÒ²ÐèÒª£¬Õâ¸öʱºò¡£¾ÍÈÝÒ×ÂÒÁË£¡
ËùÒÔÐèÒªÓиö½á¹¹¡£À´Èø÷×ÔµÄ×é¼þ¡£·Ö±ðÍê³É×ÔÉíµÄ×é¼þµÄ¹¦Äܳõʼ»¯¡£
±ÈÈç»ù´¡¹¦ÄÜ×é¼þ£º³õʼ»¯ÍøÂ硢ͼƬ¿ò¼ÜµÈ£¬ÉϲãµÄÒµÎñ×é¼þA£¬³õʼ»¯×ÔÉíµÄÆäËû¹¦ÄܲÙ×÷¡£¸÷×ÔµÄ×é¼þ·Ö±ðÖ»³õʼ»¯×ÔÉíÕⲿ·ÖµÄ²Ù×÷¡£¶ø²»ÓùÜËùÒÀÀµµÄÆäËû×é¼þÐèÒª½øÐÐʲô³õʼ»¯¡£
Õⲿ·ÖµÄÉúÃüÖÜÆÚÅÉ·¢¿ÉÒԲο¼demoÖеÄbaselibµÄdelegate°üϵÄÀࣺ

demoÁ´½Ó·ÅÔÚÁËÎÄÕÂĩβ¡£
×é¼þ¼äͨÐÅ
·ÓÉͨÐÅ
×é¼þ¼äͨÐŵĺËÐÄÊÇ·ÓÉ¿ò¼Ü£¬Õⲿ·Ö¿ò¼ÜÐèÒª·ÅÖÃÔÚ×îµ×²ãµÄ»ù´¡¹¦ÄÜ×é¼þÖУ¬ÌṩÉÏ²ã½øÐÐʹÓã¬ÕâÀïÎÒʹÓõÄÊÇÎÒ×Ô¼ºµÄ·ÓÉ¿ò¼ÜRouter:Ò»¿îµ¥Æ·¡¢×é¼þ»¯¡¢²å¼þ»¯È«Ö§³ÖµÄ·ÓÉ¿ò¼Ü¡£
´Ë·ÓÉ¿ò¼ÜÖ§³ÖÔÚµ¥Æ·¡¢×é¼þ»¯¡¢²å¼þ»¯ÖоùÄÜʹÓá£Èç¹ûÄãÏëҪΪ×é¼þ»¯Ö®ºó£¬ÄÜÔÚºóÆÚÓÐÐèÒªµÄÇé¿öÏ£¬·½±ãµÄ´Ó×é¼þ»¯Çл»µ½²å¼þ»¯µÄ»·¾³ÖÐÈ¥£¬½¨ÒéʹÓôËRouter
Èç¹ûÄãÃÇÏîÄ¿ÖÐÒѾÓÐʹÓÃ×Ô¼ºµÄ·ÓÉ¿ò¼Ü£¬ÇÒÒ²Ö±½ÓÖ§³Ö×é¼þ»¯»·¾³Ê¹Ó᣽¨ÒéÕâ¿é¾Í×îºÃ±ð¿¼ÂÇ»»ÁË¡£Êµ»°Ëµ»»Ò»¸ö·ÓÉ¿ò¼ÜÈÎÎñ»¹ÊÇÍ¦ÖØµÄ¡£
ÒòΪ»ù±¾ËùÓеĽéÉÜ×é¼þ»¯µÄblog£¬¶¼¶ÔÆäÖеÄ·ÓÉ¿ò¼Ü£¬×öÁ˷dz£ÏêϸµÄ˵Ã÷£¬ËùÒÔÕâ¿éÎҾͲ»×¼±¸Õ¹¿ª½øÐÐÏêϸµÄ׸ÊöÁË£¬ÈçÓиÐÐËȤµÄ£¬¿ÉÒԲο¼ÉÏ·½µÄÁ´½Ó½øÐÐÁ˽âʹÓá£
ʼþͨÐÅ
Óë·ÓÉͨÐŲ»Í¬µÄÊÇ£ºÂ·ÓÉÖ÷ÒªÓÃÓÚ×ö½çÃæÌø×ªÍ¨ÐÅ£¬¶ÔÓÚÆÕͨµÄʼþͨÐÅ×÷Óò»´ó¡£±ÈÈç˵ÎÒÊÇ×é¼þA£¬ÐèÒªµ÷×é¼þBÖеÄij¸ö½Ó¿Ú£¬²¢»ñÈ¡·µ»ØÊý¾Ý½øÐвÙ×÷¡£Õâ¸öʱºò£¬¾ÍÐèÒª±ðµÄ·½Ê½À´½øÐÐʵÏÖÁË¡£
ºÜ¶àÈËһ˵µ½Ê¼þͨÐÅ¡£¿ÉÄܾͻáÏëÆðʹÓÃEventBusÁË¡£µÄÈ·EventBusÊǸöºÜºÃµÄʼþͨÐÅ¿ò¼Ü£¬µ«ÊÇÏàÐÅÓùýµÄÈ˶¼ÖªµÀ¡£Ò»µ©EventBus±»ÀÄÓá£Ëæ×Åʱ¼äµÄµü´ú£¬ÓÉÓÚÆä¶ÀÌØµÄ½âñîÌØÐÔ£¬»áʹµÃÄãµÄ´úÂëºÜÄѽøÐе÷ÊÔ¡¢Î¬»¤¡£
ËùÒÔÕâ¸öʱºò£¬ÎÒÃÇÞðÆúÁËʹÓÃEventBusÀ´×÷Ϊ×é¼þ¼äʱ¼äͨÐŵÄÇÅÁº¡£¶øÊǼòµ¥µÄʹÓÿØÖÆ·´×ªµÄÊֶΡ£½«×é¼þ¼äͨÐÅÐÒ鶨ÒåÔڵײã»ù´¡×é¼þÖУ¬ÉϲãµÄÒµÎñ×é¼þ·Ö±ðʵÏֵײã¶ÔÓ¦µÄ¸÷×ÔµÄÐÒé½Ó¿ÚÀ´½øÐÐͨÐÅ¡£
ÎÒÃÇÒԵǼ×é¼þΪÀý£º
Ê×ÏÈ£¬ÔÚ»ù´¡×é¼þ²ãÌí¼ÓÒ»¸öÐÒé½Ó¿Ú¡£Õâ¸ö½Ó¿ÚÓÃÓÚ¶¨ÒåµÇ¼×é¼þËù¶ÔÍâÌṩµÄʱ¼äͨÐÅÈë¿Ú£¬±ÈÈçÍ˳öµÇ¼¡¢ÇåÀícookieµÈ£º
public interface
LoginPipe extends Pipe{
void logout();
void clearCookie();
} |
È»ºó¡£ÔڵǼ×é¼þÖС£ÊµÏÖ´ËÐÒé½Ó¿Ú¡£²¢×¢²áÈë¶ÔÓ¦µÄͨÐŹÜÀíÆ÷£º
// ×¢²á´ËʵÏÖ½øÐÒé¹ÜÀíÆ÷ÖÐ
// PipeManagerҲλÓÚ»ù´¡×é¼þÖС£
PipeManager.register(LoginPipe.class, new LoginPipeImpl());
|
// ×¢²á´ËʵÏÖ½øÐÒé¹ÜÀíÆ÷ÖÐ
// PipeManagerҲλÓÚ»ù´¡×é¼þÖС£
PipeManager.register(LoginPipe.class, new LoginPipeImpl()); |
È»ºó¼´¿ÉÔÚ±ðµÄ×é¼þÖС£Í¨¹ý´ËPipeManagerÐÒé¹ÜÀíÆ÷¡£¸ù¾ÝÐÒéÀà¡£»ñÈ¡µ½¶ÔÓ¦µÄʵÏÖÀà½øÐÐÖ±½Óµ÷ÓÃÁË£º
PipeManager.get(LoginPipe.class).logout(); |
ÉÏÃæÕâÖÖ×ö·¨£¬ËäÈ»µÄÈ·ºÜ¼òµ¥£¬µ«ÊǾ߱¸ÒÔϼ¸µãÓŵ㣺
Ìá¸ß¸÷×é¼þÐÒéµÄÄÚ¾ÛÐÔ¡£¸üÊÊÓÚ¸÷×Ô×é¼þ¶Ô¸÷×ÔµÄÐÒé½Ó¿Ú½øÐÐͳһ¹ÜÀíά»¤¡£
ʵÏÖ·½°¸¼òµ¥Ò×¶®£¬Ò×ÓÚµ÷ÊÔ¡£
ÔÚ×é¼þ»¯²ð·Ö½ø³ÌÖУ¬±ãÓÚ·½±ãºóÆÚ¶ÔÖ÷app¿ÇÎ޹شúÂë½øÐÐɾ³ý¡£
×îºóÒ»Ìõ¿ÉÄÜÏà¶Ô±È½Ï¸´ÔÓÒ»µã¡£ËùÒÔÏÂÃæÎÒÃÇÕë¶ÔÕâÌõ½øÐÐÕ¹¿ªÃèÊö£º
ÉÏÃæÎÒÃÇÌáµ½ÁË¡£ÔÚ¶ÔÀϾÉÏîÄ¿½øÐÐ×é¼þ»¯Öع¹µÄʱºò¡£Ê¹ÓÃÖ÷module×÷ΪµÄÖ÷app¿Ç£¬¶øapp¿ÇÆäʵÊÇÐèҪûÓоßÌåµÄÒµÎñ´úÂëµÄ¡£ËùÒÔÕâ¸öµØ·½´æÔÚ³åÍ»¡£µ«ÊÇÎÒÃÇ×é¼þ»¯²ð·ÖÒ²²»ÊÇ¿ÉÒÔÒ»õí¶ø¾ÍµÄ£¬Ö»ÄÜÂýÂýÒ»²½²½¡¢Ò»¸öÒ³ÃæÒ»¸öÒ³ÃæµÄ½øÐвð·Ö²¢²âÊÔ¡£ËùÒÔ²ð·Ö¹ý³ÌÆäʵÊǸöÂþ³¤µÄÍ´¿àµÄ¹ý³Ì¡£
¶øÔÚ²ð·Ö¹ý³ÌÖУ¬ºÜÄѱÜÃâµÄ¾ÍÊÇоɴúÂë¾ùÐèҪͬʱ´æÔÚµÄÞÏÞγ¡Ãæ¡£¶øÕâÖÖÞÏÞεij¡Ãæ»áÒ»Ö±³ÖÐøµ½ËùÓÐ×é¼þ¾ù²ð·ÖÍê±ÏÖ®ºó¡£
È»ºó²ð·Ö¹ý³ÌÖУ¬ÄãÒ²»áÓöµ½ÁíÍâÒ»¸öÎÊÌ⣺¾ÍÊǸ÷ÒµÎñ×éµÄ²ð·Ö¼Æ»®ÆäʵÊDz»Í¬²½µÄ£¬Ò²¾ÍÊÇ˵ºÜ¿ÉÄÜÄ㵱ǰ²ðµÄÒµÎñ¡£ÐèÒªµ÷Óõ½±ðµÄÒµÎñ×éµÄ¹¦ÄÜ£¬¶øÕâ¸ö¹¦ÄÜÕâ¸öʱºò¡£ºÜ¿ÉÄÜ»¹¸ù±¾Ã»Óб»Ìá½»µ½²ð·Ö¼Æ»®±íÉÏÀ´¡£ËùÒÔÕâ¸öʱºò¡£Äã¾Í±ØÐëÒªÔÚÄã²ð·ÖµÄ×é¼þÖУ¬»¹ÊÇÏÈÖ±½Óµ÷ÓÃÀÏÏîÄ¿ÖеÄÂß¼´úÂë¡£
ËùÒÔʹÓÃÉÏÃæµÄʼþͨÐÅ»úÖÆ¡£Äã»áÐèÒªÔÚÖ÷appÖн¨ÒéÒ»¸öÁÙʱµÄÐÒé½Ó¿Ú¡£±ÈÈ磺
public interface
MainPipe {
void doSomething();
} |
¸´ÖÆ´úÂëÈ»ºóÖ÷ÏîĿʵÏÖ²¢×¢²áËü¡£Ìṩ¸øÄãµÄ×é¼þ½øÐÐʹÓ᣶øÆäËû×é¼þÓöµ½´ËÖÖÀàËÆÎÊÌâʱ£¬Ò²ÓÚ´ËÀàËÆ¡£ÔÚ´ËMainPipeÖÖ¼ÌÐøÌí¼Ó¶ÔÓ¦µÄͨÐÅÐÒé·½·¨²¢ÊµÏÖ¼´¿É¡£
ÓÉÓÚÕâÑùµÄ×ö·¨¡£½«ËùÓеÄÖ÷appµÄÁÙʱÐÒé½Ó¿Ú¡£¾ù·ÅÖÃÓÚ´ËMainPipeÖС£ÌáÉýÁËÐÒéµÄÄÚ¾ÛÐÔ¡£µ±ËùÓÐÒµÎñ×é¾ùÍê³É×é¼þ»¯Öع¹Ö®ºó¡£ÄÇô¾Í¿ÉÒÔͳһµÄÖ±½Ó¶Ô´ËMainPipe½øÐÐÖØ¹¹£¬½«ÆäÖи÷×Ô×é¼þµÄÐÒéÇ¨ÒÆÖÁ¸÷×Ô×é¼þµÄÐÒéÀàÖУ¬È»ºó¾Í¿ÉÒÔ°²È«µØ½øÐÐÖ÷appÖÐÎÞ¹ØÒµÎñ´úÂëͳһɾ³ýÁË¡£Ê¹Æä³ÉÎªÕæÕýµÄÖ÷app¿Ç¹¤³Ì¡£
Êý¾ÝͨÐÅ
ºÜ¶àʱºò£¬Æäʵ×é¼þ¼äͨÐÅ¡£´«µÝµÄÊý¾Ý¶¼ÊÇÆÕͨµÄ¼òµ¥Êý¾Ý£¬µ«ÊÇÒ²ÓÐһЩʱºò¡£»áÐèÒª´«µÝ¸´ÔÓÊý¾Ý¡£±ÈÈç½øÐпç×é¼þµ÷ÓÃapi½Ó¿Ú²¢»ñÈ¡·µ»ØÊý¾Ýʱ£¬»òÕß˵¶ÁÈ¡Óû§ÍêÕûÊý¾Ýʱ¡£
ÒÔ¶ÁÈ¡Óû§ÍêÕûÊý¾ÝΪÀý£¬Êý¾ÝͨÐŵÄÐÒ鶨ÒåÈÔ¾ÉÒÔÉÏ·½µÄʼþͨÐÅ»úÖÆ×÷ΪʵÏÖÔØÌ壺
public class User
{
String uid;
String nickname;
String email;
String phone;
...
} |
Õâ¸öUserÀà°üº¬ÁËËùÓеÄÓû§ÐÅÏ¢ÔÚÀïÃæ¡£È»ºóÏÖÔÚÐèÒª½«´ËuserʵÀý½øÐпç×é¼þ´«µÝʱ¡£Äã¾ÍÐèÒª¶¨ÒåÒ»¸öÐÒé·½·¨¡£Ìṩ»ñÈ¡´ËUserʵÀýµÄÈë¿Ú£º
public interface
LoginPipe {
User getUser();
} |
¸´ÖÆ´úÂëÕâÊÇÕý³£µÄ×ö·¨£¬µ«ÊÇÕâÑù×öµÄ»°£¬Äã¾ÍÐèÒª½«´ËUserʵÀýÒ²Ò»Æð¿½±´µ½ÐÒ鶍֯²ã£¬¼´»ù´¡×é¼þÖÐÀ´¡£
¶øÔÚ¿ª·¢¹ý³ÌÖУ¬ÕâÖÖÏÖÏóºÜ³£¼û¡£¶øÇҺܶàʱºò£¬Ëæ×ÅÐèÇóÒ»¸ü¸Ä£¬ËùÐèÒª´«µÝµÄÊý¾ÝÒ²²»Ò»Ñù¡£Ò²²»¿ÉÄÜÿ´Î¶¼È¥½«¶ÔÓ¦µÄʵÌåbean½øÐÐÇ¨ÒÆ£¬·ÅÈëÐÒ鶍֯²ã¡£ÕâÑù¾ÍÌ«Âé·³ÁË¡£
ËùÒÔ¶ÔÓÚÕâÖÖ¿ç×é¼þͨÐŵÄ×ö·¨¡£½¨ÒéµÄ·½Ê½ÊÇͨ¹ýjsonÊý¾ÝÀ´½øÐÐÊý¾ÝͨÐÅ
jsonͨÐŵĻúÖÆ£¬¼´¿ÉÍêÃÀµÄ±ÜÃâʵÌåbeanÇ¨ÒÆµÄÎÊÌâ¡£Ò²ÄÜÈýÓÊÕ·½°´Ðè½âÎö¶ÁÈ¡Êý¾Ý£º
±ÈÈçÎÒ½ÓÊÕ·½µÄ×é¼þ¡£µ±Ç°Ö»ÐèÒªnicknameÓëuidÁ½¸öÊý¾Ý¡£ÆäËûÊý¾ÝÎÒ²»¹Ü¡£ÄÇôÎҾͿÉÒÔÖ»½âÎö´ËÁ½¸ö×ֶεÄÊý¾Ý¼´¿É¡£×öµ½°´Ðè½âÎö¡£
˵µ½ÕâÀï¡£ÍÆ¼öÒ»²¨ÎÒµÄÁíÒ»¸ö¿ò¼ÜParceler, ´Ë¿ò¼ÜÊÇ·â×°µÄBundleµÄ´æÈ¡²Ù×÷¡£Ò²Ö§³ÖjsonµÄ×Ô¶¯×ª»»¹¦ÄÜ¡£¾ßÌåÓ÷¨¿ÉÒԲο¼ÎÒÁíһƪ²©¿Í£¬ÓÐÐËȤµÄ¿ÉÒÔ¿´¿´¡£
ÓÅ»¯¼ÓËÙ
Ëæ×Å×é¼þ»¯²ð·ÖÖØ¹¹µÄ½øÐС£Äã»á·¢ÏÖÏîĿϵÄ×é¼þ±»²ð·ÖµÃÔ½À´Ô½¶à£¬ËäÈ»ÄãÒѾ¶Ô×é¼þµÄ²ð·ÖÁ£¶È¡£½øÐйý°Ñ¿ØÁË¡£µ«ÊÇ×é¼þ»¯ºómodule³ÖÐøÔö¼ÓÊDz»ÕùµÄÊÂʵ£¬Õâ¸öʱºò¡£Ëæ×ÅmoduleµÄ³ÖÐøÔö¼Ó¡£ÄãµÄÏîÄ¿±àÒëʱ¼äÒ²»á³öÏÖ±©ÕÇ¡£
ÎÒÃÇÖªµÀ¡£ÏîÄ¿±àÒëÁ÷³ÌÖУ¬µÚÒ»²½»á½«ËùÓеÄlibrary moduleÏȽøÐдò°ü±àÒë¡£Éú³É¶ÔÓ¦µÄaar¡£Ìṩ¸øapp½øÐÐʹÓã¬appµÈ´ýËùÓÐmodule´ò°üÍê±Ïºó£¬ÔÙ½âѹaar¡£½øÐÐ×ÊÔ´¡¢´úÂëºÏ²¢£¬²¢´ò°ü³ÉapkÖ´ÐÐÔËÐС£
ËùÒÔÎÒÃÇÖÆ×÷ÁËÒ»¸ögradle¼ÓËÙ²å¼þ¡£ÓÃÓÚÌáǰ½«module½øÐÐaar±àÒëºÃ¡£Ìø¹ýmodule´ò°üaarµÄ¹ý³Ì¡£ÊµÏÖ±àÒë¼ÓËÙµÄЧ¹û¡£
|