Android动态化UI框架一、Virtualview-Android

厉成仁
2023-12-01

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的文章
 类似资料: