1. 程式人生 > >模組化?元件化?外掛化?熱更新?熱修復?

模組化?元件化?外掛化?熱更新?熱修復?

如今面對Android開發,市面上各種xx化的詞彙,你都明白嗎?

各種化,模組化、元件化、外掛化、熱更新、熱修復……

  • 模組化:專案按照獨立的模組進行劃分

  • 元件化:將專案按照單一的元件來進行劃分結構

模組化與元件化的差別在於顆粒度,個人認為模組相對於元件的粒度較大!元件分的更細。一個模組可以由很多個元件構成~

  • 熱修復:當線上應用出現緊急BUG,為了避免重新發版,並且保證修復的及時性而進行的一項線上推送補丁的修復方案。

  • 熱更新:與熱修復同義!

  • 外掛化:一個程式劃分為不同的部分,以外掛的形式載入到應用中去,本質上它使用的技術還是熱修復技術,只是加入了更多工程實踐,讓它支援大規模的程式碼更新以及資源和SO包的更新。

模組化&元件化

個人感覺模組化和元件化無非就是業務和基礎支撐庫拆分粒度的區別。

當專案越來越複雜,體積也變得臃腫,程式碼量激增,各個模組相互引用導致耦合性很高。
並且各個模組無法單獨開發除錯以及測試
無法快速剝離元件開發新應用

基於以上問題:模組化(元件化)是比較好的解決方法!

專案元件化的重要環節在於,將專案按照模組來進行拆分,拆分成一個個業務module和其他支撐module(lib),各個業務module之間互不依賴,互相解耦!

每個業務module都可以安排不同的開發人員團隊來進行開發,不強制使用一種開發模式,MVP可以,MVC也可以!

然後各個業務module之間通過路由機制進行跳轉和傳遞!

所以重點就是兩點:

  • 分模組

  • 路由機制

模組化和元件化都是一種開發模式,並沒有設計太高深的技術。但是後面要說的外掛化、熱更新、熱修復等技術就不是那麼簡單了!

Android開發最前沿的技術當真屬於熱修復和外掛化了,目前已被大部分一線網際網路公司所採用
極大的提高了應用的穩定性,增強了使用者體驗

外掛化

  • Atlas

  • DroidPlugin

  • -

熱修復

這裡寫圖片描述

(圖片轉自網路)

相信大部分APP軟體的開發流程都是上面那樣。

版本上線之後,使用者或者市場反饋說有bug,然後立馬加班緊急修復,接著又釋出版本上線;然後又反饋回來說有新的bug,好嘛,接著修復然後發新版本上線;這樣一直修復bug發版本上線……

雖然軟體的bug避免不了,但是總是釋出新版本,讓使用者去下載更新使用,會讓很多使用者失去耐心和資訊。嚴重影響使用者使用和體驗,代價是很大的!

  • Andfix

  • Hotfix

  • Tinker

  • QFix

  • Amigo

  • Robust

  • Sophix

這裡寫圖片描述

這裡寫圖片描述

參考