Android Jetpack 組建介紹(一)——Lifecycler

轉自帶你領略Android Jetpack組件的魅力android

Android Jetpack

對於任何一個產品來講,咱們開發中都會面對哪些問題?如:產品交互、用戶體驗、代碼結構、數據獲取、數據存儲、網絡優化、任務調度等等,雖然在如今的階段這些問題已經有了很好的解決和優化,也有不少大神的開源組件方便開發者去使用,Android Jetpack就是Google給出的一個官方的處理方法(固然知識處理其中基本問題),Android Jetpack組件的優點:數據庫

  • 輕鬆管理應用程序的生命週期
  • 構建可觀察的數據對象,以便在基礎數據庫更改時通知視圖
  • 存儲在應用程序輪換中未銷燬的UI相關數據,在界面重建後恢復數據
  • 輕鬆的實現SQLite數據庫
  • 系統自動調度後臺任務的執行,優化使用性能

Android Jetpack組件推薦的使用項目架構網絡

image

上面架構組件的功能以下:架構

  • Activity和Fragment負責產品與用戶的交互
  • ViewModel做爲數據的存儲和驅動
  • Resposity負責調度數據的獲取
  • Room儲存本地序列化的數據
  • Retrofit獲取遠程數據的數據

按照谷歌推薦的項目架構配合Android Jatpack組件的使用,將會有不同的開發體驗,下面分析每一個組件如何幫咱們處理這些問題的。框架

Android Jetpack組件介紹

應用程序的開發和產品與用戶的交互都是從UI開始的,用戶可見的和開發者操做的結果都顯示在界面上,因此界面的操做在卡法中佔據很重要的地位,也是影響咱們開發和使用體驗的重要部分,常見的問題如:UI的聲明週期處理、數據的顯示和刷新、註冊監聽的釋放等, Jetpack架構組件就能夠幫咱們規範化的解決他們。性能

Lifecycler

Lifecycler是一個生命週期感知組件,執行操做以響應另外一個組件(例如活動和片斷)的生命週期狀態的更改,簡單來講它能夠監聽活動組件聲明週期的變化,在每一個聲明週期執行相應的方法,不一樣於以往想在生命週期中執行相應的方法須要設置接口,而後在聲明週期中回調接口,這樣會形成代碼的耦合,也會引起聲明週期的問題;優化

Lifecycler的優勢

  • Lifecycler實現了執行的邏輯和活動的分離,代碼解耦而且增長了代碼的額可讀性
  • Lifecycler在活動結束時自定移除監聽,避免了聲明週期的問題

Lifecycler的實現主要使用兩個主要枚舉來跟蹤其關聯組件的生命週期狀態.net

  • Event:從框架和Lifecycle類派發的生命週期事件。 這些事件映射到活動和片斷中的回調事件。
  • State:由Lifecycle對象跟蹤的組件的當前狀態。

image

Lifecycler的原理

Lifecycler爲每一個活動組件添加了一個沒有界面的Fragment,利用Fragment週期會根據活動聲明週期變化的特性實現的特性,從而實現聲明週期的感知,而後根據註解的Event查找執行相應的方法對象

相關文章
相關標籤/搜索