此處「Framework」指:為解決特定領域問題,封裝通用基礎設施(網絡、資料庫、UI、權限等),提供擴展點與約定,讓業務代碼聚焦核心邏輯的可復用架構骨架。
| 層級 | 核心組件 | 職責 | 開發者接觸點 |
|---|---|---|---|
| 系統服務層 | ActivityManager, PackageManager, WindowManager | 進程管理、安裝、視窗調度 | Context.getSystemService() |
| 應用框架層 | Activity, Fragment, View, RecyclerView, ViewModel, LiveData | UI 構建、生命週期、資料綁定 | 繼承/組合使用 |
| Jetpack 組件 | Room, Navigation, Paging, WorkManager, DataStore | 資料庫、導航、分頁、後台任務、偏好設定 | 依賴引入即用 |
| Kotlin 協程/Flow | suspend, Flow, Channel | 非同步流控、背壓、結構化併發 | 語法級支援 |
| 場景 | 推薦組合 | 理由 |
|---|---|---|
| 新專案、Kotlin、長期維護 | Hilt + Retrofit + Room + Flow + Compose | 官方首推、類型安全、現代化 |
| 舊專案 Java、快速交付 | Dagger + Retrofit + GreenDAO + RxJava | 相容性好、社區成熟 |
| 離線優先、複雜同步 | Room + WorkManager + ConflictResolver | 後台同步、衝突解決內建 |
| 高效能列表、大數據 | Paging 3 + RecyclerView + DiffUtil | 分頁載入、增量更新 |
| 動態配置、A/B 測試 | DataStore + Remote Config (Firebase) | 鍵值/Proto 偏好、即時生效 |
Framework 不是造輪子,而是「把輪子裝好、把路鋪平」,讓業務跑得更穩、更快、更遠。