什麼是 Android Architecture Components

Android Architecture Components(AAC) 是函式庫的集合,可以幫助開發者寫出穩健,可測試,維護性高的 App。
 
AAC 包含了以下函式庫

Data Binding Lifecycles LiveData Navigation Paging
將可觀察資料綁定到 UI 元件 管理 Activity 和 Fragment 生命週期 當資料改變時通知視圖(View) 處理 App 導航功能 循序的從數據來源讀取資料
Room ViewModel WorkManager
流暢存取 SQLite 以生命週期方式管理 UI 相關資料 管理後台任務

 
也可以看到 AAC 涵蓋了 App 的整個架構主體。
基本上有以下 4 個要點

1. lifecycle-aware components 管理 Activity 或 Fragment 的生命週期。

可以避免記憶體洩漏(memory leaks),減少處理配置變更(configuration changes)的成本,更簡易的讀取資料到 UI。

2. LiveData 建立資料物件,當資料改變時會自動通知視圖(Views)。

可以套用 Observer Pattern 的觀念,把 LiveDate 當作 Subject,視圖當作 observer。
視圖會訂閱 LiveData,因此當 LiveData的資料發生變化時,視圖會自動收到通知。

3. ViewModel 保存 UI 相關的資料,讓 App 旋轉螢幕時不會銷毀資料。

ViewModel 就是擔任 MVVM Pattern 的 VM 角色,透過隔離視圖邏輯和數據層邏輯,方便撰寫測試,專注業務邏輯。

4. Room 能更快速的存取資料庫(SQLite)並可搭配 RxJava 協同使用。

Room 為 ORM 的一種,和其它流行的框架類似能夠大量簡化 SQL 語法。