Android 热修复技术浅析

转载请注明本文出自 clevergump 的博客:http://blog.csdn.net/clevergump/article/details/54782635, 谢谢!

一. 热修复技术简介

什么是热修复技术?

通过向用户下发补丁包的方式, 让应用能够在无需重新安装的情况自动集成补丁包, 实现更新的技术.

这里写图片描述


二. 热修复技术的优缺点

优点:

  1. 无需重新发布到应用市场, 节省了从提交应用市场审核到审核通过的时间.
  2. 用户无需重新安装,只要上线就能无感知地更新.

缺点:

  1. 补丁只能针对单一客户端版本,随着版本差异变大补丁体积也会增大.
  2. 补丁不能支持所有的修改,例如AndroidManifest.
  3. 补丁无论对代码还是资源的更新成功率都无法达到100%.

结论:

热修复技术只适用于特定场景,无法完全代替传统的升级方式.


三. 热修复技术的适用场景

1. 轻量而快速的升级

适用于修改量较少, 补丁包较小的情况。在补丁包极小的情况下,也可以直接使用移动网络下载更新, 这样能达到快速升级、快速验证、缩短发布流程的目的. 注意:是否需要使用用户流量,需要慎重考虑。例如: 下图是微信某次升级试验中, 两种升级方式的对比:
这里写图片描述

2. 静默远程bug调试和验证

这里写图片描述

3. 数据统计

如果想对同一批用户做两种测试, 传统方式无法让这批用户去安装两个版本。使用热修复技术,就可以方便地对同一批用户不停地更换补丁, 然后得出不同的测试结果, 进行数据统计和对比分析. 例如: 如果想探究某次技术升级后的用户满意度或bug出现率, 就可以使用AB测试, 只给一部分用户推送升级补丁, 其他用户则依然保持原先的版本, 通过对比这两类用户各自的使用状况, 从而就可以知道这次热修复的内容是否需要继续完善或改进等. 如果发现使用了补丁包的用户的满意度提高了, 或者出现bug的概率降低了, 那么就可以将本次热修复的补丁包下发给所有用户了.

这里写图片描述

4. 其他

例如: Android Studio 的 Instant Run (热部署) 技术等.


四. 当前主流热修复方案简介及对比

1. 微信Tinker方案

开发团队 微信
方案简介 使用 ClassLoader 动态加载多个dex文件,改变dex文件的加载顺序
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值