元件化極簡的兩套方案
隨著專案越來越完善,功能越來越多,程式碼也變得越來越複雜。為了更方便開發,以及多個模組並行開發,之前的模組分包的方式已經不能滿足當前的需求,所以元件化開發勢在必行。本文介紹了當前比較流行的元件化方案,模組間通訊採用阿里的ARoute路由,並且在專案中提供了兩種不同的元件化執行的方式,各有優劣,可根據自己的專案來選擇不同的方式。
模組解耦,把公共的功能三方及工具類下沉到底層,其他模組為可獨立執行的模組
模組間通訊採用ARoute方案
元件執行方案一:配置各個模組的.gradle檔案,通過配置來區分執行的狀態(整合模式、獨立模式),以及該模組是以“library”/“application”的身份執行,並且根據執行狀態配置對應的資源、清單檔案、以及程式碼檔案等。通過更改配置引數來達到是獨立模組或整合模式執行。
元件執行方案二:這個方案比較簡單,那就是直接新增一個和app同樣的“application”模組(暫稱之為go_model),用於直接執行獨立模組。這樣app模組h和go_model都可以執行除錯獨立模組,並且不用修改配置。可以每個子模組建立一個go_model模組,也可以所有子模組共用一個go_model模組,如果共用一個go_model模組的話需要經常更改go_model模組的配置。
方案一的缺點是每個模組的配置檔案中都要新增配置不同模式的程式碼。並且每次改完配置都要重新編譯比較耗時。方案二的缺點是如果每個模組都新增一個go_model模組,會產生很多模組,方便執行,但不利於維護。如果只有一個共用的go_model模組,就需要根據執行的不同模組來改變配置。
例項


如圖為簡單的專案結構。
方案一

建立一個配置檔案,用於統一配置專案中的版本號及引數
app模組中的配置


執行
手動更改執行狀態,然後執行
isModule =false//true:元件化(獨立模組)false:整合
方案二
建立go_model模組

子模組de設定
apply plugin:'com.android.library'
執行

目前有很多元件化方案,多數是文中這種思路使用ARouter,不過也有向Appjoint等其他的選擇,適合的就是最好的,選擇一個適合自己專案的元件化,未開發賦能
附:元件化學習導圖以及 元件化學習免費資料

元件化學習導圖
資料群:4112676 加群免費領取,驗證:元件化視訊

元件化及外掛化視訊
資料群:4112676 加群免費領取,驗證:元件化視訊