VOOZH about

URL: https://read01.com/zh-mo/6nx7k.html

⇱ 關於Android的Data Binding技術 - 壹讀


Sunday, Apr 12, 2026

關於Android的Data Binding技術

2015/06/05 來源:酷勤網

此次Google IO大會,給Andorid開發者帶來了很多福利。我對其中的Data Binding技術最感興趣,所以花時間研究了一下。

Data Binding與MVVM

Data Binding即數據綁定,在很多前端框架中都有應用,比如Google維護的AngularJS就支持View和Model的雙向綁定。當數據更新,框架收到通知,視圖可以自動更新,View和Model可以做到鬆耦合。

有了Data Binding庫的支持,在Android中可以很方便的實現MVVM的開發模式。MVVM,是Windows社區的一種叫法,即Model-View-ViewModel。在Android中,Activity,Fragment,Dialog之類都屬於View層;Model層主要負責數據相關部分,可以從數據庫或者網絡獲取;ViewModel主要是把Model轉換為View可以呈現的東西,例如把一個Date類型轉化為格式化後的String。

ViewModel在哪裏呢?在Data Binding插件的支持下,會實時生成以Layout名稱命名的Binding類,比如Layout名稱為activity_main,則會生成ActivityMainBinding類,數據綁定在Layout文件中XML標註,最終在ActivityMainBinding中轉化為Java代碼,所以ActivityMainBinding類扮演了ViewModel的角色。

在我看來,MVVM相對於傳統的MVC,把一些業務邏輯抽離,放到ViewModel中,可以減輕Activity和Fragment的壓力,同時數據綁定也大大減少了邏輯代碼,另一方面對於測試來說,數據變化引起視圖自動更新,可以更加方便測試。但在XML中進行數據綁定的操作,可能不利於調試。

在Google官方發佈Data Binding庫之前,已經有類似的開源項目,如RoboBinding,支持雙向綁定等,比較成熟,Google的庫目前只支持單向綁定,為Beta版本,不知道後面是不是還有很多特性改進。你會發現,由於Android的開源特性,開發者在很多方面走在了Google的前面,比如這次發佈的權限控制,國內很多ROM早就有了這個功能。我在想,當Google發佈新版本的時候,會不會去看看MIUI有什麼特性優化呢。

參考資料

Data Binding Guide

Web開發的MVVM模式(MVC VS. MVP VS. MVVM)

MVVM介紹(iOS中MVVM的一種實現,對概念的理解有幫助)

MVVM on Android: What You Need to Know(這個博客很不錯)

Animating Android Binding Transitions(Data Binding技巧)

Sample

官方貌似沒有Data Binding的Sample,我寫了個簡單的Demo,Github地址:

您可能感興趣
免責聲明:本文內容來源于酷勤網,文章觀點不代表壹讀立場,如若侵犯到您的權益,或涉不實謠言,敬請向我們提出檢舉
最新文章 / 服務條款 / 私隱保護 / DMCA / 聯絡我們

壹讀/READ01.COM