Android架構(gòu)篇-1 項(xiàng)目組織架構(gòu)

模塊化分層

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)

image.png

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é)歸納,適合自己的才是最好的

源碼下載

還有 21% 的精彩內(nèi)容
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
支付 ¥8.88 繼續(xù)閱讀

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容