Android架構元件穩定版正式釋出

Tamic發表於2017-11-09


2017 Google IO 大會 不僅確立了 Kotlin 為安卓開發的官方語言,還有一個細節,釋出了谷歌官方 Android 應用架構庫。這新的架構庫旨在幫助開發者設計健壯、可測試的和可維護的應用程式。在Mvp之後,Google又增加Mvp+Clean的開發架構,發現元件化是APP開發的趨勢,又提供新的元件庫(Android Architecture Components)。11月5日Google宣佈kotlin支援iOS開發,昨天進一步釋出Android架構元件穩定版。


Android架構元件穩定版正式釋出



在架構元件釋出之前,google已經自己的 ViewModel 實現,通過Loader(點選檢視)和依賴注入(Dependency Injection)保證即使配置資料更改後,ViewModel 依舊不變。Goole最最近改進到了架構元件中的 ViewModel 實現,並完全將開發者從的重複工作解脫出來,以給開發者提供更多的時間用於程式碼設計、業務邏輯和測試,而不是浪費在樣板程式碼(模板)或擔心 Android 生命週期的問題上。

Android Architecture Components


主要包含:


  • 應用程式架構指南

    https://developer.android.google.cn/topic/libraries/architecture/guide.html


  • 新增元件到專案中https://developer.android.google.cn/topic/libraries/architecture/guide.html


  • 處理生命週期

    https://developer.android.google.cn/topic/libraries/architecture/lifecycle.html


  • LiveData

    https://developer.android.google.cn/topic/libraries/architecture/livedata.html


  • ViewModel

    https://developer.android.google.cn/topic/libraries/architecture/viewmodel.html


  • Room

    https://developer.android.google.cn/topic/libraries/architecture/room.html


Components 架構原則


  • 關注支援分離

  • 模型驅動UI,優先持久化模型

  • 響應式程式設計


Components 介紹


Lifecycle


Android架構元件穩定版正式釋出

Android宣告週期的回撥,幫助我們將原先需要在onStart()等生命週期回撥的程式碼可以分離到Activity或者Fragment之外。每個 Android 開發者都應該面對過生命週期問題,即作業系統啟動、停止和銷燬 Activity。有了Lifecyle這個元件,開發者可通過託管將大大減少記憶體洩露和Crash的概率。


LiveData

Android架構元件穩定版正式釋出


LiveData 是一款基於觀察者模式的可感知生命週期的核心元件,他是一個資料持有類,持有資料並且這個資料可以被觀察被監聽,和其他Observer不同的是,LiveData 持有介面程式碼 Lifecycle 的引用,意味著它和Lifecycle是繫結的。可以及時作出相應更新和釋放。


ViewModelAndroid架構元件穩定版正式釋出


用於實現架構中的ViewModel,同時是與Lifecycle繫結的,使用者無需擔心生命週期。ViewModel 將檢視的資料和邏輯從具有生命週期特性的實體(如 Activity 和 Fragment)中剝離開來。方便在多個Fragment之前分享資料,比如旋轉螢幕後Activity會重新create,這時候使用ViewModel可以輕鬆快取使用之前的資料,開發者無需再次請求網路呼叫資料。


Room

Android架構元件穩定版正式釋出


谷歌推出的一個在Sqlite 之上的ORM對映曾,使用註解,極大簡化資料庫的操作,更重要的是對內建遷移的支援。而且 Room 可以和 LiveData 整合在一起,提供可觀察資料庫並能及時響應生命週期的物件。Room 集簡潔、強大和可靠性為一身,在管理本地儲存上表現卓越,Google強烈推薦開發者嘗試。


合理化建議

我們藉助Goole元件開發的同時,也可以藉助其他三方庫來輔助我們開發出更好的應用, 開發者技術前線建議:


  • LiveData在某些情況下可使用RxJava2代替。

  • Lifecyle等生命週期管理我們可以藉助RxLifeCyle。

  • 資料層官方推薦使用Room或者Realm,等其他ORM皆可。

  • 網路請求庫推薦使用Retrofit+Okhttp

  • 多層之間解耦合,推薦使用服務發現(Service Locator) 或者依賴注入(DI),推薦Dagger2

  • Modle和View繫結我們可以使用DataBinding進行快速實現

  • 在使用元件架構時候,推薦使用MvpClean,切記不要Mvp,Mvp,Mvp!


Google samples

https://github.com/googlesamples/android-architecture-components


本文章由Tamic原創,在掘金髮布。


Android架構元件穩定版正式釋出



相關文章