Android 元件化,模組化,外掛化
1、模組化、元件化
簡單來說,模組化就是將一個程式按照其功能做拆分,分成相互獨立的模組,以便於每個模組只包含與其功能相關的內容。模組我們相對熟悉,比如登入功能可以是一個模組,搜尋功能可以是一個模組,汽車的傳送機也可是一個模組.
元件化就是基於可重用的目的,將一個大的軟體系統按照分離關注點的形式,拆分成多個獨立的元件,已較少耦合。
兩者的目的都是為了重用和解耦,只是叫法不一樣.如果非要說區別,那麼可以認為模組化粒度更小,更側重於重用,而元件化粒度稍大於模組,更側重於業務解耦.
為什麼要在Android中實行元件化開發呢,其根本原因在於業務的增長提高了專案的複雜性,為了更好的適應團隊開發,
面臨著幾個問題:
1、實際業務變化非常快,但是工程之前的業務模組耦合度太高,牽一髮而動全身.
2、對工程所做的任何修改都必須要編譯整個工程
3、功能測試和系統測試每次都要進行.
4、團隊協同開發存在較多的衝突.不得不花費更多的時間去溝通和協調,並且在開發過程中,任何一位成員沒辦法專注於自己的功能點,影響開發效率.
5、不能靈活的對工程進行配置和組裝.比如今天產品經理說加上這個功能,明天又說去掉,後天在加上.
Android 開發:由模組化到元件化(一)
Android 元件化案例
Android架構思考(模組化、多程序)
2、外掛化
外掛式開發通俗的講就是把一個很大的app分成n多個比較小的app,其中有一個app是主app。基本上可以理解為讓一個apk不安裝也可以被執行。只不過這個執行是有很多限制的執行,所以才叫外掛否則就叫病毒了
Android 外掛化 ——指將一個程式劃分為不同的部分,比如一般 App的面板樣式就可以看成一個外掛
Android 元件化 ——這個概念實際跟上面相差不那麼明顯,元件和外掛較大的區別就是:元件是指通用及複用性較高的構件,比如圖片快取就可以看成一個元件被多個 App共用
外掛的方式只有三種:1,apk安裝,2,apk不安裝,3,dex包
外掛化框架DL
Android
DynamicLoadApk 原理的核心思想可以總結為兩個字:代理。通過在 Manifest 中註冊代理元件,當啟動外掛元件時首先啟動一個代理元件,然後通過這個代理元件來構建、啟動外掛元件。
DynamicLoadApk 主要分為四大模組:DLPluginManager、Proxy、Proxy Impl、Base Plugin
呼叫外掛 Activity
的流程圖,其他元件呼叫流程類似。
(1) 首先通過 DLPluginManager
的 loadApk
函式載入外掛,這步每個外掛只需呼叫一次。
(2) 通過 DLPluginManager
的 startPluginActivity
函式啟動代理 Activity。
(3) 代理 Activity
啟動過程中構建、啟動外掛 Activity。
Android--動態載入、外掛化