阿里 Android 动态界面开发框架 Tangram,是时候了解一波了

阅读 4405
收藏 45
2019-05-23
原文链接:mp.weixin.qq.com

本文由 Jimmy-Sun 授权投稿作者博客:https://blog.csdn.net/u013541140/article/details/89517186

熟悉阿里出品的vlayout的读者都知道,vlayout极大地扩展了RecyclerView的LayoutManager,从而为RecyclerView提供了一组布局。

使用该开源项目,可以让我们在同一个RecyclerView里处理线性、网格等等各种复杂的布局。然而,使用vlayout时,一切都需要用Java代码实现,而且都是写在客户端上,一旦需要修改就必须发版,不是很灵活,于是阿里又提出了Tangram,其可以使用json来配置布局,可以说极大地提升了灵活性。

Tangram 是阿里出品的用于快速实现组合布局的框架模型,在手机天猫 Android 及 iOS版广泛使用,如下图:

手机天猫

Tangram中文翻译为七巧板,即该框架提供一系列基本单元布局,通过快速拼装就能搭建出一个具备多种布局的页面。其提供了流式布局、滚动布局,瀑布流布局,固定布局等数种布局样式,布局提供样式参数供调整,布局内部也可填充任意的视图(View),使Native开发的页面具备一定的动态性,并提供极致的性能。

官方demo截图如下:

Tangram包含的特点如下:

  • Android iOS 双平台支持。

  • 通过 json 创建页面视图,并提供了默认的解析器。

  • 可轻松实现页面视图的回收与复用。

  • 框架提供多种默认的布局方式。

  • 通过 json 数据或代码支持自定义布局样式。

  • 高性能,基于vlayout。

  • 支持扩展功能模块。

官方虽然给出了使用文档,但是不是很适合入门上手,于是我参照官方文档和各类文章,自己实现了一个demo,并总结成了一篇文章,在这里分享给大家。

Android动态界面开发框架Tangram使用完整教程:https://blog.csdn.net/u013541140/article/details/89517186

在这篇文章里,大家可以按照我的思路,来了解一下Tangram的概念、掌握该开源框架的使用步骤,并熟练使用该框架来进行布局和组件的开发。该文章的目录截图如下:

通过阅读上面的文章,大家就会了解到,在 Tangram 体系里,页面结构可以通过配置动态更新。然而,业务组件还是要通过 Java 代码实现的,无法动态更新。

于是,VirtualView 就是为了解决业务组件的动态更新而生的,它提供了一系列基础 UI 组件和布局组件能力,通过 XML 来搭建业务组件,并将 XML 模板编译成二进制数据,然后主体框架解析二进制数据并渲染出视图。当 XML 模板数据能动态下发的时候,客户端上的业务组件视图也就能动态更新了。

VirtualView 是 Tangram 升级过程中引入的新的组件开发技术,主要功能包括:

  • 一份模板,两端支持。

  • 提供基础的原子控件与容器控件,支持加入自定义组件。

  • 支持一种虚拟化实现控件的协议,在模板里混合使用虚拟控件和实体控件。

  • 支持在模板里编写数据绑定的表达式。

  • 支持在模板里写事件触发的逻辑表达式。

  • 提供配套的开发工具,辅助模板开发工具。

在下面这篇文章,我给大家带来了如何去使用VirtualView这个开源框架:

Android动态界面开发框架VirtualView使用完整教程https://blog.csdn.net/u013541140/article/details/89519912

通过学习该文章,大家可以:

  • 了解 VirtualView 模板数据的格式

  • 了解 VirtualView 的基本原理,包括从模板编译、解析、绑定数据几个主要流程

  • 了解 VirtualView 的基本接入方式,初始化、添加自定义基础控件、添加与外部的逻辑交互等

  • 了解 VirtualView 内置基础控件的特性,避免重复开发

该文章的目录截图如下:

这两篇文章里实现的demo已上传到GitHub上,开源地址链接:https://github.com/jimmysuncpt/TangramDemo

大家可以通过我的文章和demo去学习,感谢大家的支持!

推荐阅读深度解密 HTTP 通信细节Kotlin新版来了,支持跨平台!必看的 Android 源码调试技巧

编程·思维·职场欢迎扫码关注

评论