1. 程式人生 > >Android 元件化,模組化,外掛化

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

使用動態載入框架DL進行外掛化開發

DynamicLoadApk 原理的核心思想可以總結為兩個字:代理。通過在 Manifest 中註冊代理元件,當啟動外掛元件時首先啟動一個代理元件,然後通過這個代理元件來構建、啟動外掛元件。

DynamicLoadApk 主要分為四大模組:DLPluginManagerProxyProxy ImplBase Plugin

呼叫外掛 Activity 的流程圖,其他元件呼叫流程類似。
(1) 首先通過 DLPluginManager loadApk 函式載入外掛,這步每個外掛只需呼叫一次。
(2) 通過 DLPluginManager startPluginActivity 函式啟動代理 Activity
(3) 代理 Activity 啟動過程中構建、啟動外掛 Activity

Android--動態載入、外掛化