中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

Android組件化和插件化開發(fā)

2018-07-20    來源:編程學(xué)習(xí)網(wǎng)

容器云強勢上線!快速搭建集群,上萬Linux鏡像隨意使用

什么是組件化和插件化?


組件化開發(fā)就是將一個app分成多個模塊,每個模塊都是一個組件(Module),開發(fā)的過程中我們可以讓這些組件相互依賴或者單獨調(diào)試部分組件等,但是最終發(fā)布的時候是將這些組件合并統(tǒng)一成一個apk,這就是組件化開發(fā)。
插件化開發(fā)和組件化開發(fā)略有不用,插件化開發(fā)時將整個app拆分成很多模塊,這些模塊包括一個宿主和多個插件,每個模塊都是一個apk(組件化的每個模塊是個lib),最終打包的時候?qū)⑺拗鱝pk和插件apk分開或者聯(lián)合打包。


組件化

概述

android工程的組件一般分為兩種,lib組件和application組件
application組件是指該組件本身就可以運行并打包成apk
lib組件是指該組件屬于app的一部分,可以供其它組件使用但是本身不能打包成apk

為什么要有組件化?

加入一個app工程只有一個組件,隨著app業(yè)務(wù)的壯大模塊越來越多,代碼量超10萬是很正常的,這個時候我們會遇到以下問題

  • 稍微改動一個模塊的一點代碼都要編譯整個工程,耗時耗力
  • 公共資源、業(yè)務(wù)、模塊混在一起耦合度太高
  • 不方便測試

組件化正確的姿勢

既然選擇使用組件化,那么如何正確的使用它呢?這里給出一種解決方案,如果你有更好的方案,歡迎交流。
我們創(chuàng)建了一個app工程project,默認(rèn)里面有一個app組件,這個app組件是可以直接運行的。
怎么劃分組件呢?

  • 1.新建一個lib組件,new Module—>Andorid Library,取名BaseUtilLib,我們將所有的公共的工具類、網(wǎng)絡(luò)分裝等類放在其中
  • 2.新建一個lib組件,BaseReslLib,我們將所有的公共資源、drawable、String等類放在其中
  • 3.將app按照自己的規(guī)則劃分成多個模塊,比如按業(yè)務(wù)按地區(qū)等都可以
  • 4.逐一開發(fā)某個模塊,比如Test模塊,新建一個TestApp組件,TestApp組件引用[1][2]步驟的BaseUtilLib和BaseReslLib,在TestApp組件里添加并引用TestLib組件。在TestLib的activity中寫代碼寫業(yè)務(wù)邏輯,TestApp只負(fù)責(zé)跳轉(zhuǎn)和測試
  • 5.將工程中的所有類似TestLib組件(不是TestApp組件)引入到工程的app中
    看著有點亂,整理出一張圖

這樣的好處有

每個模塊可以獨立開發(fā)編譯運行
開發(fā)單個模塊時可以共享資源和工具類
可以針對單個模塊測試

demo地址:https://github.com/halibobo/ModuleBuild


插件化

為什么有插件化?

有了組件化,為什么還要用插件化呢?插件化開發(fā)總的來說有以下幾點好處(不同插件框架不一樣):

  • 宿主和插件分開編譯
  • 并發(fā)開發(fā)
  • 動態(tài)更新插件
  • 按需下載模塊
  • 方法數(shù)或變量數(shù)爆棚

處境

開放出來的插件化開發(fā)框架比較多,他們各自都有自己的優(yōu)勢和和不足,實現(xiàn)的原理也有差別下面列

開源的插件化框架

  • Qihoo360/DroidPlugin
  • CtripMobile/DynamicAPK
  • mmin18/AndroidDynamicLoader
  • singwhatiwanna/dynamic-load-apk
  • houkx/android-pluginmgr
  • bunnyblue/ACDD
  • wequick/Small
  • ……

目前開源的這幾個框架有宿主和插件分離的也有融合在一起的,每個框架的詳細(xì)介紹和demo在github里都可以查看到。插件化demo運行起來比較簡單,但是真正將它用到實際項目中還是要考慮很多小細(xì)節(jié)的,目前我也正處于研究階段。

標(biāo)簽: 代碼 網(wǎng)絡(luò)

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:redis 常用命令

下一篇:匯總Android Manifest 權(quán)限描述大全