正式發佈 Android 架構組件 1.0 穩定版

點此查看真人版中文介紹視頻:v.qq.com/x/page/r050…html

幾十億的設備都在用 Android 系統,從高端手機到飛機上的影音娛樂系統,應有盡有,不一而足。而 Android OS 則爲這幾十億的設備保駕護航,高效管理資源,保障運行流暢,然而有時候卻增長了開發卓越 App 的難度。爲了簡化開發流程,咱們在 Google I/O 大會上發佈了架構組件(Architecture Components)的預覽版,爲 App 開發構架提供指南,併爲常見任務,如生命週期管理、數據持久性等提供了一系列庫。有了這些基礎組件的幫助,開發者可以使用更少的樣板代碼寫出模塊化 App,將精力用於創新而非重複體力勞動 —— 咱們也會在從此繼續完善這一基礎架構。android

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

雖然咱們今日才發佈穩定版,其測試版組件早已被整合進達十億量級下載的 App 中。架構組件幫助不少頂級開發團隊,如 Zapppos,將更多的時間集中在更爲關鍵的工做中。安全

在架構組件發佈以前,咱們有本身的 ViewModel 實現,經過加載器(Loader) 和依賴注入(Dependency Injection)保證即便配置更改後,ViewModel 依舊不變。咱們最近轉用了架構組件中的 ViewModel 實現,並徹底擺脫了重複工做,咱們發現能夠將更多的時間用於設計、業務邏輯和測試,而不是浪費在樣板代碼或擔憂 Android 生命週期的問題上。網絡

同時咱們也開始藉助 LiveData —— 一個能夠感知 Activity 生命週期的數據容器 —— 用於獲取和顯示網絡數據,而不用再擔憂網絡調用的訂閱管理。 —— David Henry,Zappos 的 Android 軟件工程師

架構組件提供簡單、靈活並且操做性高的方法,解決開發者遇到的常見問題,讓他們能夠專一於打造一流的用戶體驗。在其背後,咱們經過 App 架構指南,將多個核心構建單元捆綁在一塊兒。架構


Lifecycles

每一個 Android 開發者都應該面對過生命週期問題,即操做系統啓動、中止和銷燬 Activity。這意味着開發者須要根據生命週期的不一樣階段,有針對性地管理組件狀態,好比用於更新用戶界面的可觀察對象。生命週期管理(Lifecycles)幫助開發者建立 「可感知生命週期的」 組件,讓其本身管理本身的生命週期,從而減小內存泄露和崩潰的可能性。生命週期庫是其餘架構組件(如 LiveData)的基礎。app

瞭解更多 Lifecycles 相關內容:ide

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

幾乎全部 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…


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

相關文章
相關標籤/搜索