1. 程式人生 > 其它 >位元組高工最新分享Android元件化最佳實踐,GitHub標星20k,全是精髓!

位元組高工最新分享Android元件化最佳實踐,GitHub標星20k,全是精髓!

一、什麼是元件化以及為啥要元件化

在專案的開發過程中,隨著開發人員的增多及功能的增加,如果提前沒有使用合理的開發架構,那麼程式碼會越來臃腫,功能間程式碼耦合也會越來越嚴重,這時候為了保證專案程式碼的質量,我們就必須進行重構。

比較簡單的開發架構是按照功能模組進行拆分,也就是用 Android 開發中的 module 這個概念,每個功能都是一個 module,每個功能的程式碼都在自己所屬的 module 中新增。這樣的設計在各個功能相互直接比較獨立的情況下是比較合理的,但是當多個模組中涉及到相同功能時程式碼的耦合又會增加。

例如首頁模組和直播間模組中都可能涉及到了視訊播放的功能,這時候不管將播放控制的程式碼放到首頁還是直播間,開發過程中都會發現,我們想要解決的程式碼耦合情況又又又又出現了。為了進一步解決這個問題,元件化的開發模式順勢而來。

二、元件化和模組化區別

1.模組:一般是指的業務模組比如【首頁模組】等。

2.元件:是指單一的功能元件,如【視訊元件】【支付元件】,每一個元件都可以單獨moudle開發,並且可以單獨抽出來當SDK使用。

由此看來他們之間最明顯的區分度就是模組相對於元件粒度更大,一個模組中可以包含多個元件,並且2種方式本質思想是一致的都是為了程式碼重用和業務解耦。在劃分的時候模組化也是業務導向,元件化是功能導向。

下圖就是一個非常基礎的元件化架構圖,圖中重上而下分為 應用層、元件層、基礎層。

3.基礎架構分層解釋

基礎層:包含一些基礎庫以及對基礎庫的一些封裝,比如我們常用的圖片載入、網路請求、資料庫儲存操作。

元件層:包含了一些簡單的功能元件

應用層:這圖中簡化了我們的應用,app相當於我們的模組,一個具體的業務模組會按照需求引用不同的功能元件。

注意:最簡單的元件架構如圖所示,但是這只是最理想狀態下的架構,實際開發中元件間肯定需要資料傳遞、頁面跳轉等,但是圖中顯示的各個元件間是相互隔離的,沒用相互依賴,如果進行相互依賴和互動,這就違背了元件化開發的原則,所以需要解決這些問題才能進行元件化開發。

如何學習元件化?

網上有很多關於學習元件化開發的文章,元件化原理很簡單,但是真正實施起來還是挺困難的,沒有相應的實戰+原始碼參考就做好踩坑的準備吧。

最近小編有幸在位元組跳動高工手裡扒到這份“元件化實戰學習手冊”,這位大佬主導開發過多個採用元件化架構的APP專案。現在我只想吹爆!這位大佬熬夜半個月,把積累的經驗和踩的坑都進行了總結,整理成了長達220頁的學習手冊,手冊中收錄了大廠熱門的元件化專案實戰,從新手到架構師,這份學習手冊足以。

第一章 Android元件化初識

  • 元件化和模組化的區別
  • 元件化和外掛化的區別
  • 元件化開發的優勢
  • 業務邏輯層
  • 元件化開發要遇到的問題
  • 從元件化實戰來解決問題
  • Android元件化基礎
    ……

第二章 Android元件化初探目錄

  • 元件化演示案例
    概述
    模組化和元件化
    元件化Demo
    元件application和library動態切換
    ……
  • WanAndroid APP 元件化專案實戰附demo
    版本更新
    效果圖
    主要功能
    專案目錄結構
    主要開源框架
    ……

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

  • 從智行 Android 專案看元件化架構實踐
    元件化調整的原因和目標
    元件化架構調整的整體規劃
    元件化架構調整中遇到的一些問題
  • 得到 App
    Android徹底元件化demo釋出
    JIMU使用指南
    元件化拆分的感悟
    ……
  • 微信 App
    微信Android模組化架構重構實踐
    微信Android架構歷史
    為何再次重構微信
    ……
  • 蘑菇街 App
    蘑菇街 App 的元件化實現方式
    元件生命週期管理
    殼工程
    遇到的問題
    持續整合
    周邊設施
    ……

  • 愛奇藝 App
    基於Service的IPC通訊
    元件化跨程序通訊的核心訴求
    Andromeda
    架構分析
    ……

  • 美團 App
    外賣客戶端容器化架構的演進
    美團外賣容器化架構全景圖
    外賣跨端容器建設
    外賣頁面容器建設
    外賣容器化架構的衡量指標
    外賣容器化架構的監控運維
    外賣容器化架構的釋出能力
    ……
  • 美團Android元件化方案及元件訊息匯流排modular-event實戰
  • 美團Android訊息匯流排的演進之路:用LiveDataBus替代RxBus、EventBus
  • WMRouter:美團外賣Android開源路由框架
  • 美團貓眼android模組化實戰-可能是最詳細的模組化實戰
  • 攜程App
  • 支付寶 App
    ......

以上就是位元組跳動大佬熬夜整理的220頁Android元件化實戰學習手冊,有需要的朋友直接點選我的GitHub獲取完整文件。

結語

現在元件化真的不是什麼新鮮東西了,大公司都用的滾瓜爛熟,龍飛鳳舞了,也就是現在部分中型專案和小專案在元件化的路上努力。

所以同志們,元件化沒玩過的,不熟悉的趕緊搞起來,說一點,你不會元件化,釋出影子工程那麼對你來說就是個噩夢。從本質上來講任何技術進步都是在現實需求的逼迫下抓耳撓腮,耗盡無數頭髮才想出來的。

所以呢元件化這個東西出來這麼久了,頁發展了這麼久了,用的人越來越多,那肯定是對我們開發大有裨益的,小夥伴們不會,不熟悉抓緊啦,要不面試問你你怎麼回答呢!