簡單聊聊Android元件化

jlanglang發表於2018-01-12

前言:

前段時間用元件化開發了一個專案(2個人,90多個頁面,4個模組,差不多20天寫完),分享下心得.

幾個問題:

  1. 什麼是元件化
  2. 元件化怎麼用
  3. 是不是能提高開發速度
  4. 元件化會碰到的一些問題

一.什麼是元件化

1.從業務上來看

比如:電商app

1.進店(登陸註冊)
2.看商品(商品展示)
3.選商品(購物車)
4.購物發票,電話預定(訂單資訊)
5.給錢(支付)
複製程式碼

一個業務對應一個元件.

不管哪個業務邏輯發生變化.只需要修改其中一個就行.

有人會說,我不用元件化也是這樣啊.

那我這樣說,比如把上面5個業務看成5個文案.

如果寫成一個文案.(沒有元件化).改其中一個業務的文案時,是不是需要從整個文案裡去找.

如果每個業務的文案,都單獨寫成一份.最後放到一起.是不是修改起來就簡單了.

元件化開發是把文案夾在一起.普通開發是把文案訂在一起.

2.從開發的角度

來張圖比較直觀:

Paste_Image.png

1.把第三方庫分類進行封裝.做成基礎lib庫

2.把每個元件都需要的,通用的lib進行整合 做成framework,這個framework其實也是一個lib

3.每個元件在framework的基礎上進行開發.

4.各個元件開發完成後將所有元件整合成app.(可以弄一個空殼module,也可以把某一個module當主module)

覺得的很複雜,很難理解嗎?把圖換一下

Paste_Image.png

同樣的道理放在安卓系統結構上也適用.

二.元件化怎麼用:

元件化gradle的配置,在這就不說,這類文章太多了

傳送門:Android 元件化開發詳解

三. 是不是能提高開發速度

很多人覺得,沒必要弄,這麼多配置啥的,多浪費時間.多麻煩

這裡總結一下:

1.當你要開發的app頁面數超過50,業務模組大於2個時,最好考慮用元件化開發.即使你是一個人 2.有了第一次,第二次就快了.並且對於架構和業務的理解會提升. 3.分鍋清楚 4.不用擔心別人寫的程式碼影響你的心情. 5.維護容易.某個模組寫的不好,重寫也不難 6.即使一個專案出現:元件一mvc,元件二mvp,元件三mvvm這種情況,也能正常開發,程式碼不亂.(真這樣老大就要祭天了) 7.lib庫越來越豐富.開發更簡單.新專案直接拿lib或者直接拿某一元件開始開發,省時省力.而不是去copy程式碼了.

四. 元件化會碰到的一些問題

1.首先,你需要準備幾個開發庫.在一些開源庫的基礎上再封裝. 2.最好不要使用butterknife.雖然最新的配置一下也能用. 3.AndroidManifest,都要寫好activity註冊.不管是debug目錄,還是release目錄 4.library模式下,不能有applacitonId.會報錯 5.一些定製性的操作,放到framework層做處理.而不是寫死在lib層. 6.後期當lib庫封裝成熟後,可以做成私有的線上依賴庫.

就這些了,想到什麼以後再補充.

最後奉上本人的元件庫開源地址:

mvpDemo

目前網路層(lib-network-rx-retrofit)和base層(lib-mvpbase-appcompat)封裝的比較完善.其他的會後續補上

具體module例子沒什麼時間寫.主要看看framework和lib吧= =

---------------------------------分割線--------------------------------

您的喜歡與回覆是我最大的動力-_-(ps:還不是為了吸粉)

交流群:493180098,這是個很少吹水,有人解決問題的群.

相關文章