关于移动端动态化方案的再思考——Weex

栏目: IT资讯 · 发布时间: 6年前

内容简介:在移动端日益兴起的今天,APP 本身的灵活性、迭代更新的周期、成本优化等动态性问题,成为很多移动应用的客观需求。而针对动态性,开发者们也探索出一些有力的解决方案:Hybrid 方案、结构化 native view 方案、R...

在移动端日益兴起的今天,APP 本身的灵活性、迭代更新的周期、成本优化等动态性问题,成为很多移动应用的客观需求。而针对动态性,开发者们也探索出一些有力的解决方案:Hybrid 方案、结构化 native view 方案、React Native 方案(大家习惯简称 RN)等。

但技术从来没有最优解,这些方案提供了动态化问题的一些解法,但都各有所限,开发者们仍在努力地寻找一种更针对移动端动态性问题的技术方案。阿里自研的高性能跨平台移动开发框架 —— Weex 解决了频繁发版和多端研发两大痛点,一套 Web 代码完美适配 iOS、Android、H5、Web 等多端,极大地解放开发者的同时又保证了用户体验。

Weex 的核心工作链路细节

Weex 核心设计理念是三端一体化的动态化解决方案,云端实现实时发布和动态部署、模版预解析处理,前端在 JS Framework 实现动态内容解析并处理成 Virtual DOM,客户端提供渲染实现和 native 特性的支持,业务只需根据 DSL 实现动态内容的开发或配置即可。

Weex 在 DSL 设计上大量借鉴了 Web 标准的规范,并且通过主流且成熟的 MVVM 模式书写 template、style、script,在学习成本、开发习惯方面上考虑了很多,以便业务开发者能更快可地学习和上手,并且保证代码规范性和可读性。

在提升性能,减少客户端的性能损耗上,Weex 在服务器端实现了 DSL Transformer 的工作,可以在模版发布的同时,将 XML + CSS + JavaScript 代码转换为可以小数据量执行效率高的 JS Bundle,并同步存储至云端:如 Web Server、CDN 等。

在保证业务逻辑的动态性上,Weex 在客户端的 JavaScript 引擎中预运行起了一套 JS Framework,来负责解析整个 JS Bundle,而 native 端则只负责 Virtual DOM 的解析和布局、UI 渲染的实现、以及基础网络通讯、文件读写以及手势处理等基础 API 的实现。

而 Weex 的 JS Bundle 可以实现三端跨平台渲染展示,开发者可以通过开发一份 Weex JS Bundle,来实现 iOS/Android/HTML5 三端的正常展示,有效提升了工作效率。所有的 native 组件和 JS API 全部都是模块化的,业务开发者可以通过注册新的模块和方法达到去中心化的能力扩展。

关于 Weex 的性能优化还有以下几个细节:

  1. JS Framework 通过对数据的依赖收集,实现响应式的视图层,再加上一层 diff 算法的优化,可以有效的过滤冗余的操作和复杂的计算。

  2. Native 端对通信,Virtual DOM 解析以及布局实现等进行异步线程的处理,防止 UI 线程的阻塞。

  3. 对 UI 组件节点实现了复用处理,并对图片资源进行监控和回收,有效的减少内存的占用。

  4. 对于实时性要求较高的处理,Weex 允许第三方实现 native 的定制需求来保证体验的流畅性。

2015 年“ 双十一” Weex 框架成功地完成了性能、稳定性、灵活度这三个极限挑战,做了一次惊艳的首秀亮相。2016 年 6 月底,Weex 正式开源,开始与全球开发者共享中国的移动互联网技术成果。2017 年 9 月底,基于 Weex 的富交互、轻量级、高性能的 UI 组件库 Weex  UI 开源。

Weex 在接受开源社区的不断洗礼沉淀,与长期的思考与摸索中,有了更大的进步与改善。而相关的 工具 、服务,也在逐渐配套完善中。

本次杭州源创会,我们特别邀请了 阿里国际 UED 高级前端技术专家——辟蹊,以淘宝亿级的店铺业务为着手点,介绍手淘店铺的移动端技术选型和实现方案,前端 JS 加载机制和优化策略,如何动态化加载,数据动静分离,如何利用客户端缓存等,并讲解移动端动态化的 Weex 渲染能力展开的一些技术实现和背后思考。

除此之外,我们 2018 年 7 月 21 日(周六)的杭州源创会 —— 移动开发专场还邀请了:即构科技资深架构师——冼牛、个推 Android 高级研发工程师——李子洋、钉钉开放平台高级技术专家——莘舟、前华为、饿了么资深工程师,现爱奇艺架构师, 开源项目 Andromeda 作者——王龙海,五位行业大牛齐聚,以移动开发为核心,与你一起分享交流,进行一场关于面对面的技术对话。

点击报名,与业内大咖和更多小伙伴当面交流。

报名链接:https://www.oschina.net/event/2281784?origin=sqrw1

注:以上内容有引用和参考《阿里无线11.11 : Weex——关于移动端动态性的思考、实现和未来


【声明】文章转载自:开源中国社区 [http://www.oschina.net]


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Unity 3D游戏开发(第2版)

Unity 3D游戏开发(第2版)

宣雨松 / 人民邮电出版社 / 2018-9 / 89.00元

Unity 是一款市场占有率非常高的商业游戏引擎,横跨25 个主流游戏平台。本书基于Unity 2018,结合2D 游戏开发和3D 游戏开发的案例,详细介绍了它的方方面面,内容涉及编辑器、游戏脚本、UGUI 游戏界面、动画系统、持久化数据、静态对象、多媒体、资源加载与优化、自动化与打包等。 本书适合初学者或者有一定基础的开发者阅读。一起来看看 《Unity 3D游戏开发(第2版)》 这本书的介绍吧!

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具