谷歌推出了安卓架構組件1.0,一系列用于設計“健壯、可測試和可維護應用程序”的組件庫。目前包含了Lifecycle、LiveData、ViewModel和Room,其他更多的組件會陸續推出。
谷歌創建架構組件的目的是幫助“持久化數據、管理組件生命周期、編寫模塊化應用、處理常見錯誤、編寫更少的重復代碼”。這些主要組件如下:
Lifecycle組件用于創建能夠感知自身生命周期、能夠基于自身狀態調整行為的activity和fragment。組件可以經歷多種狀態——初始化、已創建、已啟動、已恢復、已銷毀,在狀態發生改變時會調用生命周期方法來執行各種動作。生命周期將持有組件的狀態信息,負責處理狀態的變化及釋放任務所使用的組件。目的是讓代碼更簡單,更易于理解。
LiveData組件用于持有可觀測的數據,它掌握著組件的生命周期信息,在組件出現活躍狀態時提供更新,一般用于創建反應式UI。
ViewModel組件用于管理activity和fragment的數據,這些數據會在重新創建UI組件時保存起來,比如發生屏幕旋轉時需要重新創建UI。ViewModel包含了一些與數據相關的代碼,從而簡化了UI控制器。
Room組件是一個對象映射層,負責將數據保存到SQLite。Room提供了編譯時的查詢驗證,對可能出現錯誤的查詢做出標記。谷歌建議使用Room來代替直接訪問SQLite,因為這樣可以在本地緩存數據,并且可以與LiveDat集成,讓它成為組件生命周期的一部分。
在不久的將來,谷歌將推出一個新的組件,叫作PagedList,目前處于alpha測試階段。PagedList可以漸進式地加載數據,無需等待數據庫查詢完畢。在未來幾個月,他們還將陸續推出其他組件。
谷歌還發布了架構指南,說明如何使用這些組件。他們說,這些組件已經“準備好用于生產環境”,建議開發者使用它們來構建安卓應用。
查看英文原文:Android Architecture Components 1.0: Lifecycle, LiveData, ViewModel and Room