告別臃腫、降低耦合-----組件化
1.項目結(jié)構(gòu)圖

1.png
2.項目模塊
1.app模塊是一個殼工程,不在放置所有業(yè)務(wù)與功能---gradle文件里需要引入組件化模塊

2.png
?????? 2.base模塊存放業(yè)務(wù)工程需要繼承或者引用的基類或者工具庫,像BaseApplication、BaseActivity、第三方庫Glide、Retrofit等

3.png
?????? 3.module_login業(yè)務(wù)組件庫,應(yīng)用的業(yè)務(wù)被拆分成獨立的業(yè)務(wù),例如此項目的登錄業(yè)務(wù),通過參數(shù)控制該庫組件是否加入運行,這里通過改變useModule參數(shù)值實施控制。

gradle.properties參數(shù)值.4.png

業(yè)務(wù)模塊控制.5.png
3.ARouter的使用
??? 1.@Route聲明,從而表明當(dāng)前類是可以被其它組件打開的;
??? 2.通過inject方法,將當(dāng)前類注入進(jìn)ARoute,這樣當(dāng)前類被調(diào)用才能生效;
??? 3.通過navigation方法,可以帶上參數(shù)等,跳轉(zhuǎn)到其它的聲明過@Route的組件;
4.Demo地址