總結一波安卓元件化開源方案

齊翊發表於2018-02-13

摘要

為了讓大家能快速對android元件化有個整體的認識,本文將從多個維度對目前網上一些有代表性的開源元件化開發方案進行對比,從而更好的區分各元件化方案的特點,快速選擇適合自己使用的方案深入學習並使用,在面試中被問到時也能做到心中有數。

前言


android平臺上元件化開發的概念近兩年非常火熱,有些同學反映在面試中被問到的頻率也很高。

目前網上關於元件化開發方案的文章、開源庫比較多,讓很多初學者感到迷茫,不知該從何處入手,難以確定自身的業務特性適合使用哪種框架,如果全部都學習一遍成本比較高,而且在學習過程中容易將各方案的一些特性記混淆。

為了讓大家能快速對android元件化有個整體的認識,本文將從多個維度對目前網上一些有代表性的開源元件化開發方案進行對比,從而更好的區分各元件化方案的特點,快速選擇適合自己使用的方案深入學習並使用,在面試中被問到時也能做到心中有數。

由於篇幅及個人精力所限,只選取了比較有代表性的幾個元件化方案進行比較,對比內容中如有謬誤之處,歡迎大家指正,可以在評論中留言或者提issuepr給我,和我一起完善更多元件化方案的對比,降低開發者學習元件化技術的難度。

持續更新中,歡迎watch、star

對比表


markdown語法對錶格支援的不太友好,為了方便檢視,下面貼出對比表的截圖,具體的表格見github

?手機上圖片顯示不清晰,請點選此處看大圖

android元件化框架對比圖

表格中框架的相關連結


序號 名稱 相關文章
1 CC wiki

CC框架實踐(1):實現登入成功再進入目標介面功能

CC框架實踐(2):Fragment和View的元件化

CC框架實踐(3): 讓jsBridge更優雅
2 得到DDComponentForAndroid Android徹底元件化方案實踐

元件化設計思路 淺談Android元件化

原理解釋文章Android徹底元件化方案實踐

demo解讀文章Android徹底元件化demo釋出
3 ModularizationArchitecture Android架構思考(模組化、多程式)

ModularizationArchitecture 使用教程
4 阿里ARouter 開源最佳實踐:Android平臺頁面路由框架Arouter
5 聚美元件化方案Demo
(基於聚美Router)
聚美元件化實踐之路

Router:一款單品、元件化、外掛化全支援的路由框架
6 ActivityRouter ActivityRouter路由框架:通過註解實現URL開啟Activity

通過 URL 開啟 Activity

其它比較有特色的元件化方案簡介


  • 51信用卡路由方案OkDeepLink

    曾經在作者的github賬號上開源,現已刪除,作者在博文中提到後續2.0版會放到公司的github賬號上,但一直未釋出。 這裡有個fork版本

    這個方案中使用aspectJ來實現路由表的自動註冊,與其它方案不太一樣,不過此方案的作者也打算廢棄這種方式,理由是aspectJ還是太重了

    這個方案文章中還提到了關於路由安全的措施,其中有使用URL中加簽名的方式來遮蔽非法訪問,類似於客戶端連線服務端的http請求對引數進行加密校驗

  • 元件匯流排方案ModuleBus

    介紹文件:元件化開發跨module互動方式---ModuleBus互動

    這個方案的特別之處在於其借鑑了EventBus的思想,元件的註冊/登出和元件呼叫的事件傳送都跟EventBus類似

  • 美柚路由方案RouterKit

    這個方案的特別之處在於其元件自動註冊的方案:通過apt生成每個module的路由表,然後複製到app的assets目錄,執行的時候遍歷asset目錄,反射對應的activity

  • 其它(歡迎給我提issuepr補充!)

一點補充

Android元件化之(路由 vs 元件匯流排)

相關文章