微信 Android 端早期架構基於「單 Activity + 多 Fragment」模式,主界面 `MainTabActivity` 承載四大 Tab(微信、通訊錄、發現、我),每個 Tab 對應一個根 `Fragment`,子頁面再嵌套子 `Fragment`。
核心架構演進
| 階段 | 架構特點 | 代表版本 |
| 1.0 - 4.x | 單 Activity,Fragment 疊加管理,自定義 Fragment 棧 | 早期版本 |
| 5.x - 7.x | 引入插件化 (Dynamic Load)、組件化,業務模塊解耦 | 增長期 |
| 8.x+ | 模塊化 + APT 編譯時優化、Kotlin 重寫、Flutter 混合棧 | 成熟期 |
關鍵技術點
- Fragment 管理器:自定義 `FragmentTabHost` 替代系統 `FragmentTabHost`,支持動畫、生命周期精確控制、棧同步
- 消息列表:`ListView` → `RecyclerView` + 多類型 Item + 預加載 + 差量更新 (DiffUtil)
- 圖片加載:自研圖片庫 (类似 Glide/Fresco),支持 WebP、長圖分塊、預覽手勢
- 插件化:動態下發業務模塊 (如小程序、支付、游戲),獨立編譯、熱修復
- 數據層:SQLite + WAL 模式 + 多進程同步 (MMKV/SharedPreferences 替代)
學習建議
- 先掌握「單 Activity + 多 Fragment」基礎架構,實現一個簡易版微信主界面
- 學習 `RecyclerView` 多類型佈局、項目動畫、滑動優化
- 研究開源 IM 客戶端:Android-IM、RePlugin (360插件化)
- 進階閱讀:《Android 開發藝術探索》組件化/插件化章節、《微信 Android 終端演進》技術文章
微信架構非一日建成,核心是「業務解耦 + 性能極致 + 灰度發布」。初學者切勿照搬,應從基礎架構入手,逐步引入組件化思想。