模塊化分層
1.結(jié)構(gòu)清晰,各模塊代碼分離,符合高內(nèi)聚低耦合,快速定位查找代碼
2.團(tuán)隊(duì)協(xié)作開(kāi)發(fā)靈活,互不影響,各模塊完成后合并即可完成整體app
3.抽離公共層、模塊層、業(yè)務(wù)層,方便維護(hù)管理
分層架構(gòu)圖
- App下的Home(首頁(yè))、Mine(我的)、Login(登錄)、Main(主頁(yè))等是app功能模塊劃分,根據(jù)模塊大小自由定義拆分粒度
- 公共層主要作為app各大功能模塊的共有依賴,抽取模塊共性(如:接口調(diào)用、數(shù)據(jù)庫(kù)、公共頁(yè)面、公共業(yè)務(wù)工具類)
- 底層庫(kù)是所有項(xiàng)目通用的,主要是些base類,網(wǎng)絡(luò)接口封裝、工具類等
代碼結(jié)構(gòu)

config.gradle
config.gradle文件主要是統(tǒng)一管理定義整個(gè)項(xiàng)目的所有依賴包的版本、編譯工具、最低最高適配,這里定義的版本號(hào)建議明確化版本,不要有4.+這類模糊版本定義,一旦產(chǎn)品成型,不要輕易升級(jí)第三方版本,除非必要,畢竟穩(wěn)定性優(yōu)先!
代碼封裝
1.base類,主要分類三類
1)所有項(xiàng)目都通用都base,放到module_common_base庫(kù),主要封裝一些打印信息、常用BaseActivity、BaseFragment甚至Base所有的View控件等功能
2)本項(xiàng)目特定的base,繼承module_common_base庫(kù)base,放到module_app_common的base里,定制項(xiàng)目通用的base,如通用導(dǎo)航欄、下拉刷新上拉加載更多等
3)某些頁(yè)面共性封裝,如同類產(chǎn)品詳情頁(yè)面、同類列表頁(yè)面等
2.建議所有第三方庫(kù)都需要再封裝一層
1)編程語(yǔ)言、系統(tǒng)更新都很快,第三方庫(kù)不一定能及時(shí)更行
2)隨著項(xiàng)目的擴(kuò)張,某些第三方庫(kù)已經(jīng)無(wú)法滿足需求,需要找替代品
3)第三方庫(kù)功能過(guò)多,需要封裝出項(xiàng)目特定的API接口
架構(gòu)適用性
此接口適合中小型app項(xiàng)目,大型項(xiàng)目的話可以把App里功能Modules再細(xì)分,每個(gè)module都可以拆分為UI層module、business業(yè)務(wù)層module,module_app_common庫(kù)下的各模塊功能各作為一個(gè)module(如:數(shù)據(jù)庫(kù)、支付、Service、Router等)。如果需要對(duì)外提供SDK的同樣需要再抽離出module。可以根據(jù)實(shí)際情況拆分
架構(gòu)分層
不要被MVC、MVVM、VIPER等架構(gòu)鎖死,這些架構(gòu)只是提供一些思路,學(xué)會(huì)了需要靈活運(yùn)用,總結(jié)歸納,適合自己的才是最好的
源碼下載