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

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

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

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬Linux鏡像隨意使用

什么是組件化和插件化?


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


組件化

概述

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

為什么要有組件化?

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

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

組件化正確的姿勢(shì)

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

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

這樣的好處有

每個(gè)模塊可以獨(dú)立開發(fā)編譯運(yùn)行
開發(fā)單個(gè)模塊時(shí)可以共享資源和工具類
可以針對(duì)單個(gè)模塊測(cè)試

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


插件化

為什么有插件化?

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

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

處境

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

開源的插件化框架

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

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

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

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

上一篇:redis 常用命令

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