組件化開發就是將一個app分紅多個模塊,每一個模塊都是一個組件(Module),開發的過程當中咱們可讓這些組件相互依賴或者單獨調試部分組件等,可是最終發佈的時候是將這些組件合併統一成一個apk,這就是組件化開發。
插件化開發和組件化開發略有不用,插件化開發時將整個app拆分紅不少模塊,這些模塊包括一個宿主和多個插件,每一個模塊都是一個apk(組件化的每一個模塊是個lib),最終打包的時候將宿主apk和插件apk分開或者聯合打包。android
android工程的組件通常分爲兩種,lib組件和application組件
application組件是指該組件自己就能夠運行並打包成apk
lib組件是指該組件屬於app的一部分,能夠供其它組件使用可是自己不能打包成apkgit
加入一個app工程只有一個組件,隨着app業務的壯大模塊愈來愈多,代碼量超10萬是很正常的,這個時候咱們會遇到如下問題github
既然選擇使用組件化,那麼如何正確的使用它呢?這裏給出一種解決方案,若是你有更好的方案,歡迎交流。
咱們建立了一個app工程project,默認裏面有一個app組件,這個app組件是能夠直接運行的。
怎麼劃分組件呢?網絡
這樣的好處有併發
每一個模塊能夠獨立開發編譯運行
開發單個模塊時能夠共享資源和工具類
能夠針對單個模塊測試app
demo地址:https://github.com/halibobo/ModuleBuild框架
有了組件化,爲何還要用插件化呢?插件化開發總的來講有如下幾點好處(不一樣插件框架不同):工具
開放出來的插件化開發框架比較多,他們各自都有本身的優點和和不足,實現的原理也有差異下面列組件化
目前開源的這幾個框架有宿主和插件分離的也有融合在一塊兒的,每一個框架的詳細介紹和demo在github裏均可以查看到。插件化demo運行起來比較簡單,可是真正將它用到實際項目中仍是要考慮不少小細節的,目前我也正處於研究階段。測試
轉自:大黑