移动互联网已经发展十年了,随着业务成熟和功能的相对稳定,整体重心开始偏向运营,强烈的运营需求对客户端架构和发布模式都提出了更高的要求。如果每个修改都需要经历开发、上线、版本覆盖等漫长的过程,根本无法达到快速响应的要求。

常见的动态化方案

移动端动态化方案在最近几年一直是大家关注的重点,虽然它已经发展了很多年,但是每年都会有新的变化,这里我们先来看看各大公司有哪些已知的动态化方案。

动态化方案分为下面四种类型:

  • Web 容器增强。基于 H5 实现,但是还有离线包等各种优化手段加持,代表方案有 PWA、腾讯的 VasSonic、淘宝的 zCache 以及大部分的小程序方案。
  • 虚拟运行环境。使用独立的虚拟机运行,但最终使用原生控件渲染,代表方案有 React Native、Weex、快应用等。
  • 业务插件化。基于 Native 的组件化开发,这种方式在淘宝、支付宝、美团、滴滴、360 等航母应用上十分常见。代表方案有阿里的 Atlas、360 的RePlugin、滴滴的 VirtualAPK 等。除此之外,我认为各个热修复框架应该也属于业务插件化的一种类型,例如微信的 Tinker、美团的 Robust、阿里的 AndFix
  • 布局动态化。插件化或者热修复虽然可以做到页面布局和数据的动态修改,但是代价巨大,而且也不容易实现个性化运营。为了实现“千人千面”,淘宝和美团的首页结构都可以通过动态配置更新。代表的方案有阿里的 Tangram、Facebook 的 Yoga

动态化方案的选择

四大动态化方案哪家强,我们又应该如何选择?在回答这个问题之前,我们先来看看它们的差别。

参考