任意门 | 基于 Wafers 的版本业务静默更新能力

目录:

  1. 适用范围
  2. 背景
  3. 方案调研
  4. 设计思路
  5. 任意门10.6.5招聘首次上线基础数据
  6. 任意门动态更新平台

 

1. 适用范围

线上 AB 测,紧急需求上线,bug 修复等

 

2. 背景

  1. 目前线上 AB 测只能跟某个具体的 App 版本,无法在线上包上提前验证效果
  2. 小版本、紧急需求、bug 修复只能通过发版实现

 

3. 方案调研

插件化:

  1. 稳定性差:大量 hook framework, 反射私有 API
  2. 打包侵入大,维护成本高
  3. 无法控制影响范围,需要走集成测试

RN/Flutter:

  1. 现在基于 Native 实现的业务,改造成 RN/Flutter 成本高
  2. 更新会作用于所有版本,实现 A/B 测维护成本高
  3. Flutter 热更新、包大小问题

View 的动态化:

  1. 只能实现 View 级别的动态化,无法实现逻辑动态化
  2. 维护成本高,需要额外处理版本控制

Wafers(58内部开源项目):

  1. 基于插件化实现动态包安装运行,少量 hook 和私有 API 访问,稳定性好
  2. 基于 Android App Bundle 实现,动态更新只能作用于某个版本,自带版本控制功能,适用于 A/B 测,动态更新,且 58App 新版更新收敛率高达 90% 以上
  3. 支持静默安装,可以让用户无感知更新
  4. 动态更新适用范围:不能修改基础包,不能新增四大组件,改动影响范围可控

最终选择 Wafers 来实现此功能,目前 Wafers 已作用于特殊推广包,厂商包,本地开发,线上包使用场景较少。也是借这个契机,拓展 Wafers 在线上包上的使用场景。

同时招聘当时正好要做大类页改版,需要提前验证数据,所以加速了这个项目的推进。取名为任意门,寓意为可以任意穿梭的时光门,提供了一种对于现有 App 发版流程的补充。

 

4. 设计思路

整体设计:

依赖结构:

server 数据下发 (Wafers 冷启动检测更新接口):

客户端跳转流程:

 

 

5. 任意门10.6.5招聘首次上线基础数据

招聘在 10.6.5 发布后,基于市场包上线了整个招聘大类页面的 A/B 测,上线了华为、小米两个市场,我们产出了一份数据报告。

安装数据:

崩溃率:

 

6. 任意门动态更新平台

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值