前言
網(wǎng)上關(guān)于 “Android 開發(fā)" 的文章很多,我本人學(xué)習(xí) Android 開發(fā)的過程也借鑒了網(wǎng)上先輩們的文章;但大多數(shù)文章都從底層的細(xì)枝末節(jié)開始講述,由下而上給人一種這門技術(shù)“博大精深”望而生畏的感覺;而我寫這篇文章的初衷就是由上而下,希望別人在閱讀的過程中能夠覺得 “模塊化、組件化、插件化、熱修復(fù)原來是這樣的??!” 的感覺
模塊化
模塊:
-
最初的目的是將同一類型的代碼整合在一起; 所以模塊的功能相對復(fù)雜,但都同屬于一個業(yè)務(wù);
-
不同模塊之間也會存在依賴關(guān)系; 但大部分都是業(yè)務(wù)性的互相跳轉(zhuǎn),從地位上來說它們都是平級的
特點:
-
分屬同一功能/業(yè)務(wù)的代碼進(jìn)行隔離(分裝)成獨立的模塊,可以獨立運行; 以頁面、功能或其他不同粒度劃分程度不同的模塊,位于業(yè)務(wù)框架層,模塊間通過接口調(diào)用,目的是降低模塊間的耦合,由之前的主應(yīng)用與模塊耦合,變?yōu)橹鲬?yīng)用與接口耦合,接口與模塊耦合;
-
模塊就像有多個USB插口的充電寶,可以和多部手機(jī)充電,接口可以隨意插拔,復(fù)用性很強(qiáng),可以獨立管理; 模塊就像是獨立的功能和項目(如淘寶:注冊、登錄、購物、直播…),可以調(diào)用組件來組成模塊,多個模塊可以組合成業(yè)務(wù)框架
組件化
組件:
- 最初的目的是代碼重用,功能相對單一或者獨立; 在整個系統(tǒng)的代碼層次上位于最底層,被其他代碼所依賴,所以說組件化是縱向分層
特點:
-
把重復(fù)的代碼提取出來合并成為一個個組件,組件最重要的就是重用(復(fù)用),位于框架最底層,其他功能都依賴于組件,可供不同功能使用,獨立性強(qiáng)
-
組件就像一個個小的單位,多個組件可以組合成組件庫,方便調(diào)用和復(fù)用,組件間也可以嵌套,小組件組合成大組件
Android工程的組件一般分為兩種:
application組件: 是指該組件本身就可以運行并打包成apk
lib組件: 是指該組件屬于app的一部分,可以供其它組件使用但是本身不能打包成apk
正常一個App中可以有多個module(模塊),但是一般只會有一個module是設(shè)置為application的,其他均設(shè)置為library; 組件化開發(fā)就是要每個module都可以運行起來,因此在開發(fā)期間每個module均設(shè)置為application,發(fā)布時再進(jìn)行合并。
為什么要有組件化?
Android項目中代碼量達(dá)到一定程度,編譯將是一件非常痛苦的事情; 短則一兩分鐘,長則達(dá)到五六分鐘;隨著app業(yè)務(wù)的壯大,模塊越來越多,代碼量超10萬是很正常的
這個時候我們會遇到以下問題:
-
稍微改動一個模塊的一點代碼都要編譯整個工程,耗時耗力
-
公共資源、業(yè)務(wù)、模塊混在一起耦合度太高
-
不方便測試文章來源:http://www.zghlxwxcb.cn/news/detail-400621.html
組件化開發(fā)的優(yōu)點
組件化開發(fā)可以有效降低代碼模塊的耦合度&#文章來源地址http://www.zghlxwxcb.cn/news/detail-400621.html
到了這里,關(guān)于一篇讀懂 Android 開發(fā)中模塊化、組件化、插件化和熱修復(fù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!