国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

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

瀏覽:32日期:2022-09-27 13:41:03
什么是組件化和插件化?

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

組件化概述

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

為什么要有組件化?

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

稍微改動(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.逐一開(kāi)發(fā)某個(gè)模塊,比如Test模塊,新建一個(gè)TestApp組件,TestApp組件引用[1][2]步驟的BaseUtilLib和BaseReslLib,在TestApp組件里添加并引用TestLib組件。在TestLib的activity中寫(xiě)代碼寫(xiě)業(yè)務(wù)邏輯,TestApp只負(fù)責(zé)跳轉(zhuǎn)和測(cè)試5.將工程中的所有類似TestLib組件(不是TestApp組件)引入到工程的app中看著有點(diǎn)亂,整理出一張圖Android組件化和插件化開(kāi)發(fā)

這樣的好處有

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

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

插件化為什么有插件化?

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

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

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

開(kāi)源的插件化框架Qihoo360/DroidPluginCtripMobile/DynamicAPKmmin18/AndroidDynamicLoadersingwhatiwanna/dynamic-load-apkhoukx/android-pluginmgrbunnyblue/ACDDwequick/Small……

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

標(biāo)簽: Android
相關(guān)文章:
主站蜘蛛池模板: 久久综合色88 | 日韩无砖专区体验区 | 最新日韩欧美不卡一二三区 | 国产在线精品福利一区二区三区 | 欧美综合图片一区二区三区 | 久久夜色精品国产噜噜亚洲a | 农村寡妇野外情一级毛片 | 午夜在线成人 | 成人欧美精品久久久久影院 | 亚洲欧美日韩精品永久在线 | 亚洲经典三级 | 欧美成人ass | 伊人久久91| 日韩午夜视频在线观看 | 国产高清视频在线观看 | 久久久这里只有精品加勒比 | 日韩特级片 | 国产一起色一起爱 | 秋霞手机入口二日韩区 | 香蕉香蕉国产片一级一级毛片 | 日韩毛片免费线上观看 | 国产精品一区二区丝瓜 | 欧美99| 99久久99久久精品免费看子伦 | 国产欧美在线观看不卡一 | 亚洲综合久久久久久888 | 韩国免费a级毛片 | 中文字幕亚洲国产 | 久草在线视频资源 | 欧美成人综合 | 美女视频黄a视频美女大全 美女视频黄a视频免费全程 | 久久久9视频在线观看 | 久久免费视频2 | 在线播放人成午夜免费视频 | 美女福利视频午夜在线 | 成人午夜在线视频 | www一级片| 欧美刺激午夜性久久久久久久 | 国产欧美在线不卡 | 久久综合久美利坚合众国 | 神马三级我不卡 |