一、Android 應用層架構分析

前言

最近在做 Android 基礎架構方面的工作,所以打算寫一系列文章來整理這方面的知識。我將從 0 到 1 仿網易云音樂搭建一個 APP 來介紹自己是怎么設計應用層架構的。

本文主要分析了傳統架構、模塊化架構以及組件化架構之間差別。

一、傳統架構分析

下圖就是一個傳統架構模式,所有的代碼都在一個工程 app module 里面,


傳統架構圖.jpg

小型的項目采用這種架構模式也沒有問題,但是對一般項目會越來越大的時候就會開發越來越困難。

傳統架構的缺點:

  1. 單一 app 工程,代碼量指數級膨脹,帶來一系列的問題,如:代碼合并,編譯時間。
  2. 業務邏輯,與基礎功能沒有做區分,緊密耦合在一起,代碼復用行為0。

二、模塊化架構分析

為了避免所有代碼都往一塊堆,就出現了模塊化架構思想,下圖是一個模塊化架構模式,

模塊化架構圖.jpg

它是一個分層的體系結構:
其中 宿主 是一個單獨的 module,不存放任何邏輯,它的作用就是對外產生一個 apk;
下一層 業務組件 是我們的產品業務,每一個業務都是一個單獨的 module;
接著 基礎業務組件 層是我們公司所有 app 通用的一些東西,它們也是獨立的 module;
再往下 功能組件 層與我們的業務邏輯沒有一點的關系,同樣每一個組件也是獨立的 module;
這個體系結構是非常清晰,所以要迭代一個新的 app 是非常快的,因為基礎業務組件和功能組件都是可以復用的。

但是它也有缺點:就是業務組件之間強依賴。

三、組件化架構分析

為了解決模塊化架構中的強依賴缺點,又產生了組件化架構,下面是組件化架構模式,


組件化架構圖.jpg

其實組件化和模塊化架構思想差別不是很大,組件化主要是對業務組件進行解耦。

總結

本文主要介紹了一下目前三種架構模式的區別,我主要是采用了組件化架構模式進行開發的,接下來的文章將會詳細介紹是怎么搭建架構的。

(ps:小女子不才,歡迎在評論區指出文章中不足的地方)

參考文章:
http://www.lxweimin.com/p/cac0beae8876
https://juejin.im/post/5b5f17976fb9a04fa775658d

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容