android插件化開發指南「android組件化開發框架」

背景

組件化作為Android客戶端技術的一個重要分支,近年來一直是業界積極探索和實踐的方向。每個大廠內部的各個Android開發團隊也在嘗試和實踐不同的組件化方案,並且在組件化通信框架上也有很多高質量的產出。本文主要介紹我們的組件化方案,希望對從事Android組件化開發的同學能有所啟發。

為什麼要組件化

近年來,為什麼這麼多團隊要進行組件化實踐呢?組件化究竟能給我們的工程、代碼帶來什麼好處?我們認為組件化能夠帶來兩個最大的好處:

1.提高組件復用性

可能有些人會覺得,提高復用性很簡單,直接把需要復用的代碼做成Android Module,打包AAR並上傳代碼倉庫,那麼這部分功能就能被方便地引入和使用。但是我們覺得僅僅這樣是不夠的,上傳倉庫的AAR庫是否方便被複用,需要組件化的規則來約束,這樣才能提高復用的便捷性。

2.降低組件間的耦合

我們需要通過組件化的規則把代碼拆分成不同的模塊,模塊要做到高內聚、低耦合。模塊間也不能直接調用,這需要組件化通信框架的支持。降低了組件間的耦合性可以帶來兩點直接的好處:第一,代碼更便於維護;第二,降低了模塊的Bug率。

怎樣實現組件化

要實現組件化需要考慮的問題主要包括下面幾個:

  • 代碼解耦。將一個龐大的工程拆分解耦,這是非常耗時耗力的工作,但這也是最基礎最重要的一步
  • 數據傳遞。每個組件都有可能提供給其他組件使用,主項目與組件、組件與組件之間的數據傳遞
  • UI跳轉。
  • 組件的生命周期。組件加載、卸載和降維的生命周期
  • 集成調試。在開發階段如何做到按需的編譯組件?一次調試中可能只有一兩個組件參與集成,這樣編譯的時間就會大大降低,提高開發效率。
  • 代碼隔離。如何杜絕耦合的產生。

下面給大家介紹的是全網最全的Android組件化實戰整理,覆蓋了整個互聯網公司,受篇幅限制不會展示所有內容,只能截圖展示部分,完整內容已整理成PDF文檔,如果你正好需要這份完整版Android組件化最佳實戰PDF,可以私信關鍵詞【筆記】即可獲得免費領取方式。

第一章 Android組件化初識

1.組件化和模塊化的區別

  1. 組件化和插件化的區別
  2. 組件化開發的優勢
  3. 業務邏輯層

5.從組件化實戰來解決問題

  1. Android組件化基礎
字節總監對Android組件化的最佳實戰總結,(附源碼)

第二章 Android組件化初探

1.組件化演示案例

  • 模塊化和組件化
  • 模塊化
  • 組件化
  • 組件化Demo
  • 項目分析
  • 組件application和library動態切換
  • 組件間的數據傳遞和方法調用
  • 組件類(例如:Fragment)的獲取,以及誇組件頁面跳轉和通訊

2. WanAndroid APP 組件化項目實戰附demo

  • 簡介
  • 版本更新
  • 效果圖
  • 主要功能
  • 項目目錄結構
  • 主要開源框架
字節總監對Android組件化的最佳實戰總結,(附源碼)

第三章 架構演化(大廠篇)

1.從智行 Android 項目看組件化架構實踐

  • 前言
  • 概述
  • 組件化調整的原因和目標
  • 組件化架構調整的整體規劃
  • 組件化架構調整中遇到的一些問題
  • 組件化架構的實踐成果
字節總監對Android組件化的最佳實戰總結,(附源碼)

2.得到 App

  • Android徹底組件化demo發布
  • JIMU使用指南
  • 組件化拆分的感悟
  • Android徹底組件化—代碼和資源隔離
  • 代碼隔離
  • 資源隔離
  • 調試切換
字節總監對Android組件化的最佳實戰總結,(附源碼)

組件化:代碼隔離也難不倒組件的按序初始化

  • 問題的根源
  • 為什麼不使用官方StartUp而選擇造輪子
  • 設計思路
  • 有向無環圖(DAG)
  • 環校驗
  • 契合需求的排序方式
  • 任務的描述
  • 在JIMU中使用
  • 重要事項
字節總監對Android組件化的最佳實戰總結,(附源碼)

3.微信 App

  • 微信Android模塊化架構重構實踐
  • 微信Android架構歷史
  • 為何再次重構微信
  • 重塑模塊化
  • 取捨和選擇
  • 代碼之外,架構之內
字節總監對Android組件化的最佳實戰總結,(附源碼)

4.蘑菇街 App

  • 蘑菇街 App 的組件化之路
  • 實現方式
  • 組件生命周期管理
  • 殼工程
  • 遇到的問題
  • 持續集成
  • 周邊設施
  • 小結
字節總監對Android組件化的最佳實戰總結,(附源碼)

蘑菇街 App 的組件化之路·續

  • 統一的調用實現
  • 通過 Category 來統一組件對外暴露的接口
  • 更明確的表述
  • 註冊這個組件關心的 URL
  • 註冊這個組件能夠被調用的方法/屬性
  • 在 App 生命周期的不同階段做不同的響應
  • 針對casatwy的一些回應
  • 小結
字節總監對Android組件化的最佳實戰總結,(附源碼)

5 愛奇藝 App

  • 關於組件化
  • 基於Service的IPC通信
  • 組件化跨進程通信的核心訴求
  • Andromeda
  • 架構分析
字節總監對Android組件化的最佳實戰總結,(附源碼)

6.美團 App

  • 外賣客戶端容器化架構的演進
  • 背景
  • 美團外賣業務介紹
  • 美團外賣移動端歷史架構概述

美團外賣容器化架構全景圖

  • 什麼是容器化架構
  • 容器化架構的優勢
  • 外賣容器化架構全景圖
  • 容器化的挑戰
  • 外賣跨端容器建設
  • MRN容器
  • Titans容器

外賣頁面容器建設

  • 頁面容器化設計思路
  • 業務構建模塊標準化
  • 小結

外賣容器化架構的衡量指標

  • 容器化架構衡量指標的特點
  • 鏈路指標
  • 關鍵指標
  • 外賣容器化架構的監控運維
  • 外賣容器化架構的發布能力
  • 容器化架構發布體系
  • 跟版本發布流程
  • bundle資源發布
  • 多種發布能力綜合使用
字節總監對Android組件化的最佳實戰總結,(附源碼)

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模塊化實戰-可能是最詳細的模塊化實戰

字節總監對Android組件化的最佳實戰總結,(附源碼)

11.攜程App(篇幅過長,無法展示全部)

12.支付寶 App

……

字節總監對Android組件化的最佳實戰總結,(附源碼)

總結:組件化後讓代碼結構非常清晰,分層結構以及之間的交互很明了,團隊中的任何一個人都可以很輕鬆的繪製出代碼結構圖,這個在之前是沒法做到的,並且每個組件的編譯時間從 10 分鐘降到了幾十秒,工作效率有了很大地提升,最關鍵的還是解耦之後,每次開發需求的時候,面對的代碼越來越少,不用背負那麼重的代碼包袱,可以說達到了“代碼越寫越少”的理想情況。如果你是一位Android開發者學好組件化是非常有必要的,而深入理解組件化的實戰更是重中之重。

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/269635.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-16 13:17
下一篇 2024-12-16 13:17

相關推薦

發表回復

登錄後才能評論