背景
組件化作爲Android客戶端技術的一個重要分支,近年來一直是業界積極探索和實踐的方向。每個大廠內部的各個Android開發團隊也在嘗試和實踐不同的組件化方案,並且在組件化通信框架上也有很多高質量的產出。本文主要介紹我們的組件化方案,希望對從事Android組件化開發的同學能有所啓發。
爲什麼要組件化
近年來,爲什麼這麼多團隊要進行組件化實踐呢?組件化究竟能給我們的工程、代碼帶來什麼好處?我們認爲組件化能夠帶來兩個最大的好處:
1.提高組件複用性
可能有些人會覺得,提高複用性很簡單,直接把需要複用的代碼做成Android Module,打包AAR並上傳代碼倉庫,那麼這部分功能就能被方便地引入和使用。但是我們覺得僅僅這樣是不夠的,上傳倉庫的AAR庫是否方便被複用,需要組件化的規則來約束,這樣才能提高複用的便捷性。
2.降低組件間的耦合
我們需要通過組件化的規則把代碼拆分成不同的模塊,模塊要做到高內聚、低耦合。模塊間也不能直接調用,這需要組件化通信框架的支持。降低了組件間的耦合性可以帶來兩點直接的好處:第一,代碼更便於維護;第二,降低了模塊的Bug率。
怎樣實現組件化
要實現組件化需要考慮的問題主要包括下面幾個:
-
代碼解耦。將一個龐大的工程拆分解耦,這是非常耗時耗力的工作,但這也是最基礎最重要的一步
-
數據傳遞。每個組件都有可能提供給其他組件使用,主項目與組件、組件與組件之間的數據傳遞
-
UI跳轉。
-
組件的生命週期。組件加載、卸載和降維的生命週期
-
集成調試。在開發階段如何做到按需的編譯組件?一次調試中可能只有一兩個組件參與集成,這樣編譯的時間就會大大降低,提高開發效率。
- 代碼隔離。如何杜絕耦合的產生。
下面給大家介紹的是全網最全的Android組件化實戰整理,覆蓋了整個互聯網公司,受篇幅限制不會展示所有內容,只能截圖展示部分,完整內容已整理成PDF文檔,如果你正好需要這份完整版Android組件化最佳實戰PDF,可以點此處免費獲取。
第一章 Android組件化初識
1.組件化和模塊化的區別
-
組件化和插件化的區別
-
組件化開發的優勢
- 業務邏輯層
5.從組件化實戰來解決問題
- Android組件化基礎
第二章 Android組件化初探
1.組件化演示案例
-
模塊化和組件化
-
模塊化
-
組件化
-
組件化Demo
-
項目分析
-
組件application和library動態切換
-
組件間的數據傳遞和方法調用
- 組件類(例如:Fragment)的獲取,以及誇組件頁面跳轉和通訊
2. WanAndroid APP 組件化項目實戰附demo
-
簡介
-
版本更新
-
效果圖
-
主要功能
-
項目目錄結構
- 主要開源框架
第三章 架構演化(大廠篇)
1.從智行 Android 項目看組件化架構實踐
-
前言
-
概述
-
組件化調整的原因和目標
-
組件化架構調整的整體規劃
-
組件化架構調整中遇到的一些問題
- 組件化架構的實踐成果
2.得到 App
-
Android徹底組件化demo發佈
-
JIMU使用指南
-
組件化拆分的感悟
-
Android徹底組件化—代碼和資源隔離
-
代碼隔離
-
資源隔離
- 調試切換
組件化:代碼隔離也難不倒組件的按序初始化
-
問題的根源
-
爲什麼不使用官方StartUp而選擇造輪子
-
設計思路
-
有向無環圖(DAG)
-
環校驗
-
契合需求的排序方式
-
任務的描述
-
在JIMU中使用
- 重要事項
3.微信 App
-
微信Android模塊化架構重構實踐
-
微信Android架構歷史
-
爲何再次重構微信
-
重塑模塊化
-
取捨和選擇
- 代碼之外,架構之內
4.蘑菇街 App
-
蘑菇街 App 的組件化之路
-
實現方式
-
組件生命週期管理
-
殼工程
-
遇到的問題
-
持續集成
-
周邊設施
- 小結
蘑菇街 App 的組件化之路·續
-
統一的調用實現
-
通過 Category 來統一組件對外暴露的接口
-
更明確的表述
-
註冊這個組件關心的 URL
-
註冊這個組件能夠被調用的方法/屬性
-
在 App 生命週期的不同階段做不同的響應
-
針對casatwy的一些迴應
- 小結
5 愛奇藝 App
-
關於組件化
-
基於Service的IPC通信
-
組件化跨進程通信的核心訴求
-
Andromeda
- 架構分析
6.美團 App
-
外賣客戶端容器化架構的演進
-
背景
-
美團外賣業務介紹
- 美團外賣移動端歷史架構概述
美團外賣容器化架構全景圖
-
什麼是容器化架構
-
容器化架構的優勢
-
外賣容器化架構全景圖
-
容器化的挑戰
-
外賣跨端容器建設
-
MRN容器
- Titans容器
外賣頁面容器建設
-
頁面容器化設計思路
-
業務構建模塊標準化
- 小結
外賣容器化架構的衡量指標
-
容器化架構衡量指標的特點
-
鏈路指標
-
關鍵指標
-
外賣容器化架構的監控運維
-
外賣容器化架構的發佈能力
-
容器化架構發佈體系
-
跟版本發佈流程
-
bundle資源發佈
- 多種發佈能力綜合使用
7. 美團Android組件化方案及組件消息總線modular-event實戰
-
背景
-
組件化之前的狀態
-
組件化方案調研
-
美團其他團隊組件化方案調研
-
組件化方案
-
組件化消息總線框架modular-event
-
組件消息總線modular-event的實現
-
消息總線modular-event的結構
-
使用動態代理實現運行時調用
- 訂閱和發送的模式
8. 美團Android消息總線的演進之路:用LiveDataBus替代RxBus、EventBus
-
背景
-
發佈/訂閱模式
-
RxBus的出現
-
引入LiveDataBus的想法
-
爲什麼使用LiveData構建數據通信總線LiveDataBus
-
LiveDataBus的設計和架構
- LiveDataBus最終實現
9.WMRouter:美團外賣Android開源路由框架
10.美團貓眼android模塊化實戰-可能是最詳細的模塊化實戰
11.攜程App(篇幅過長,無法展示全部)
12.支付寶 App
......
總結:組件化後讓代碼結構非常清晰,分層結構以及之間的交互很明瞭,團隊中的任何一個人都可以很輕鬆的繪製出代碼結構圖,這個在之前是沒法做到的,並且每個組件的編譯時間從 10 分鐘降到了幾十秒,工作效率有了很大地提升,最關鍵的還是解耦之後,每次開發需求的時候,面對的代碼越來越少,不用揹負那麼重的代碼包袱,可以說達到了“代碼越寫越少”的理想情況。如果你是一位Android開發者學好組件化是非常有必要的,而深入理解組件化的實戰更是重中之重。
如果你正好需要這份Android組件化實戰PDF文檔,可以點擊此處快速獲取通道,資料都是免費分享給愛學習的你的。
整理不易,覺得有幫助的朋友可以幫忙點贊分享支持一下小編哦~
你的支持,我的動力;祝各位前程似錦,offer不斷!!!
更多Android架構相關資料可點此處獲取。