爲了讓你們能快速對android組件化有個總體的認識,本文將從多個維度對目前網上一些有表明性的開源組件化開發方案進行對比,從而更好的區分各組件化方案的特色,快速選擇適合本身使用的方案深刻學習並使用,在面試中被問到時也能作到心中有數。java
android平臺上組件化開發的概念近兩年很是火熱,有些同窗反映在面試中被問到的頻率也很高。android
目前網上關於組件化開發方案的文章、開源庫比較多,讓不少初學者感到迷茫,不知該從何處入手,難以肯定自身的業務特性適合使用哪一種框架,若是所有都學習一遍成本比較高,並且在學習過程當中容易將各方案的一些特性記混淆。git
爲了讓你們能快速對android組件化有個總體的認識,本文將從多個維度對目前網上一些有表明性的開源組件化開發方案進行對比,從而更好的區分各組件化方案的特色,快速選擇適合本身使用的方案深刻學習並使用,在面試中被問到時也能作到心中有數。github
因爲篇幅及我的精力所限,只選取了比較有表明性的幾個組件化方案進行比較,對比內容中若有謬誤之處,歡迎你們指正,能夠在評論中留言或者提issue和pr給我,和我一塊兒完善更多組件化方案的對比,下降開發者學習組件化技術的難度。面試
持續更新中,歡迎watch、star安全
markdown語法對錶格支持的不太友好,爲了方便查看,下面貼出對比表的截圖,具體的表格見githubmarkdown
👉手機上圖片顯示不清晰,請點擊此處看大圖架構
51信用卡路由方案OkDeepLinkapp
曾經在做者的github帳號上開源,現已刪除,做者在博文中提到後續2.0版會放到公司的github帳號上,但一直未發佈。 這裏有個fork版本框架
這個方案中使用aspectJ來實現路由表的自動註冊,與其它方案不太同樣,不過此方案的做者也打算廢棄這種方式,理由是aspectJ仍是過重了
這個方案文章中還提到了關於路由安全的措施,其中有使用URL中加簽名的方式來屏蔽非法訪問,相似於客戶端鏈接服務端的http請求對參數進行加密校驗
組件總線方案ModuleBus
介紹文檔:組件化開發跨module交互方式---ModuleBus交互
這個方案的特別之處在於其借鑑了EventBus的思想,組件的註冊/註銷和組件調用的事件發送都跟EventBus相似
美柚路由方案RouterKit
這個方案的特別之處在於其組件自動註冊的方案:經過apt生成每一個module的路由表,而後複製到app的assets目錄,運行的時候遍歷asset目錄,反射對應的activity