Android動態化UI框架一、Virtualview-Android

Android動態化UI框架一、Virtualview-Android

GitHub:alibaba/Virtualview-Android

簡介:

A light way to build UI in custom XML.

Virtualview-Android是阿里界面方案:七巧板(Tangram)中的安卓相關開源庫之一。

  1. alibaba/Tangram-AndroidTangram is a modular UI solution for building native page dynamically including Tangram for Android, Tangram for iOS and even backend CMS. This project provides the sdk on Android.
  2. alibaba/vlayout Project vlayout is a powerfull LayoutManager extension for RecyclerView, it provides a group of layouts for RecyclerView. Make it able to handle a complicate situation when grid, list and other layouts in the same recyclerview.
  3. alibaba/UltraViewPagerUltraViewPager is an extension for ViewPager to provide multiple features in a single ViewPager.
  4. alibaba/virtualview_tools實時編譯預覽工具,加速開發 Virtual View 模版的小腳本,讓你能脫離繁重的開發環境 Xcode 和 Android Studio,只需一個輕量級的文本編輯器如 VSCode/Atom/SublimeText 即可開始進入開發,並且提供熱加載能力,大大加速提高開發調試效率。

目錄:

  1. 單獨使用VirtualView
  2. 在 Tangram 中使用 VirtualView
  3. 如何編寫一個自定義基礎控件
  4. 事件處理
  5. 增加自定義邏輯
  6. 動態更新模板

意義:

在 Tangram 體系裏,頁面結構可以通過配置動態更新,然而業務組件是通過 Native 代碼實現的,無法動態更新。VirtualView 就是爲了解決業務組件的動態更新而生的,它提供了一系列基礎 UI 組件和佈局組件能力,通過 XML 來搭建業務組件,並將 XML 模板編譯成二進制數據,然後主體框架解析二進制數據並渲染出視圖。當 XML 模板數據能動態下發的時候,客戶端上的業務組件視圖也就能動態更新了。

編寫 XML 模板的方式、序列化成二進制數據的協議,VirtualView 都很大程度上吸取了 Android 原生開發的開發方式和原理,但增加了數據綁定、表達式相關的能力,可以更好的與 Tangram 體系結合。

在通過 XML 模板構建組件的基礎之上,VirtualView 引入了虛擬化的概念,它支持將 XML 裏描述的佈局嵌套層次和視圖節點扁平化、虛擬化,從而減少了最終渲染出來的實體組件的層次,提升繪製效率。

XML 模板實現組件的動態性,虛擬化的技術提升組件的渲染性能,這兩點就是使用 VirtualView 技術的主要意義所在。

特點:

  1. 一份模板,兩端支持。
  2. 提供基礎的原子控件與容器控件,支持加入自定義組件。
  3. 支持一種虛擬化實現控件的協議,在模板裏混合使用虛擬控件和實體控件。
  4. 支持在模板裏編寫數據綁定的表達式。
  5. 支持在模板裏寫事件觸發的邏輯表達式。
  6. 提供配套的開發工具,輔助模板開發工具。

參考:

  1. 飛翔的熊blabla的文章
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章