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

Android_開發者發表於2017-11-08

點此檢視真人版中文介紹視訊:v.qq.com/x/page/r050…

幾十億的裝置都在用 Android 系統,從高階手機到飛機上的影音娛樂系統,應有盡有,不一而足。而 Android OS 則為這幾十億的裝置保駕護航,高效管理資源,保障執行流暢,然而有時候卻增加了開發卓越 App 的難度。為了簡化開發流程,我們在 Google I/O 大會上釋出了架構元件(Architecture Components)的預覽版,為 App 開發構架提供指南,併為常見任務,如生命週期管理、資料永續性等提供了一系列庫。有了這些基礎元件的幫助,開發者能夠使用更少的樣板程式碼寫出模組化 App,將精力用於創新而非重複體力勞動 —— 我們也會在今後繼續完善這一基礎架構。

今天我們很高興地宣佈 Room 和生命週期管理(Lifecycles)的架構組建庫 1.0 穩定版正式釋出,其 API 已經可以在生產環境的 App 和庫中使用,並且我們強烈建議在 App 架構和本地儲存方面需要幫助的開發者使用這些 API (只是推薦使用,並不硬性要求)。此外生命週期管理同時也已整合到支援庫中(Support Library),因此開發者也可以在標準類別裡,如 AppCompatActivity 中使用這些 API。

雖然我們今日才釋出穩定版,其測試版元件早已被整合進達十億量級下載的 App 中。架構元件幫助很多頂級開發團隊,如 Zapppos,將更多的時間集中在更為關鍵的工作中。

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

在架構元件釋出之前,我們有自己的 ViewModel 實現,通過載入器(Loader) 和依賴注入(Dependency Injection)保證即使配置更改後,ViewModel 依舊不變。我們最近轉用了架構元件中的 ViewModel 實現,並完全擺脫了重複工作,我們發現可以將更多的時間用於設計、業務邏輯和測試,而不是浪費在樣板程式碼或擔心 Android 生命週期的問題上。

同時我們也開始藉助 LiveData —— 一個可以感知 Activity 生命週期的資料容器 —— 用於獲取和顯示網路資料,而不用再擔心網路呼叫的訂閱管理。 —— David Henry,Zappos 的 Android 軟體工程師

架構元件提供簡單、靈活而且操作性高的方法,解決開發者遇到的常見問題,讓他們可以專注於打造一流的使用者體驗。在其背後,我們通過 App 架構指南,將多個核心構建單元捆綁在一起。


Lifecycles

每個 Android 開發者都應該面對過生命週期問題,即作業系統啟動、停止和銷燬 Activity。這意味著開發者需要根據生命週期的不同階段,有針對性地管理元件狀態,比如用於更新使用者介面的可觀察物件。生命週期管理(Lifecycles)幫助開發者建立 “可感知生命週期的” 元件,讓其自己管理自己的生命週期,從而減少記憶體洩露和崩潰的可能性。生命週期庫是其他架構元件(如 LiveData)的基礎。

瞭解更多 Lifecycles 相關內容:

developer.android.google.cn/topic/libra…


LiveData

LiveData 是一款基於觀察者模式的可感知生命週期的核心元件。LiveData 為介面程式碼 (Observer)的監視物件 (Observable),當 LiveData 所持有的資料改變時,它會通知相應的介面程式碼進行更新。同時,LiveData 持有介面程式碼 Lifecycle 的引用,這意味著它會在介面程式碼(LifecycleOwner)的生命週期處於 started 或 resumed 時作出相應更新,而在 LifecycleOwner 被銷燬時停止更新。通過 LiveData,開發者可以方便地構建安全性更高、效能更好的高響應度使用者介面。

瞭解更多 LiveData 相關內容:

developer.android.google.cn/topic/libra…


ViewModel

ViewModel 將檢視的資料和邏輯從具有生命週期特性的實體(如 Activity 和 Fragment)中剝離開來。直到關聯的 Activity 或 Fragment 完全銷燬時,ViewModel 才會隨之消失,也就是說,即使在旋轉螢幕導致 Fragment 被重新建立等事件中,檢視資料依舊會被保留。ViewModels 不僅消除了常見的生命週期問題,而且可以幫助構建更為模組化、更方便測試的使用者介面。

瞭解更多 ViewModel 相關內容:

developer.android.google.cn/topic/libra…


Room

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

幾乎所有 App 都需要在本地儲存資料。自從最早版本開始,Android 就提供了 SQLite,但是直接使用 SQLite是件苦差事。因此,我們推出了 Room,一款簡單好用的物件對映層。它和 SQLite 有一樣強大的功能,但是節省了很多重複編碼的麻煩事兒。它的一些功能,如編譯時的資料查詢驗證、內建遷移支援等,讓開發者能夠更簡單地構建健壯的持久層。而且 Room 可以和 LiveData 整合在一起,提供可觀測資料庫並感知生命週期的物件。Room 集簡潔、強大和可靠性為一身,在管理本地儲存上表現卓越,我們強烈推薦各位開發者試用一下。

瞭解更多 Room 相關內容:

developer.android.google.cn/topic/libra…


App 架構指南以及更多訊息

最後還有一個要點得說明一下:我們撰寫了 “App 架構指南”,涵蓋數條適用於所有開發者的關鍵原則以及針對架構元件的具體指導。因為有開發者向我們反映,清晰、連貫的指南文件很重要,因此我們現在更新了開發者文件,在適當之處指明架構元件。此外,我們還在官網釋出了一系列相關視訊、codelab 和 App 樣本,並且會陸續補充。

App 架構指南:

developer.android.google.cn/topic/libra…

Android 架構元件官網:

developer.android.google.cn/topic/libra…


繼續注意此領域

儘管首套架構元件已經發布穩定版,我們深知路漫漫其修遠兮。在過去的幾個月中,我們正對各位提出的反饋,認真作出改進。在最近通過 Alpha 測試版渠道,我們還發布了新元件 —— PagedList,解決大家用 RecyclerView 處理大資料集的困難。旅途才剛剛開始,我們還有更多重要元件還在開發階段,有望在未來的幾個月和大家見面。

瞭解更多 PagedList 內容:

developer.android.google.cn/topic/libra…

提交反饋:

developer.android.google.cn/topic/libra…


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

我們希望架構元件能夠解放開發者,讓各位能夠專注於創新,打造移動端獨一無二的新體驗。我們很高興最終釋出可用於生產環境的穩定版本。在此,我們特別要感謝開發者一直以來提供的寶貴建議,希望各位在下方討論區踴躍留言。各位一直翹首以盼穩定版的朋友們,何不今天就開始下載使用?


相關文章