估计很多的开发者都有过这样的经历,当 App 发布之后,一旦在客户端出现问题,就只能干着急。紧接着各部门会焦头烂额:重新打包 App、测试、向各个应用市场和渠道换包、提示用户升级、用户下载、覆盖安装……有时候仅仅是为了修改了一行代码,也要付出巨大的成本进行换包和重新发布。
那么,有没有更好、更快的方法能更好更快的解决以上问题呢?当然有,热修复补丁技术。
首先,简单介绍一下热修复补丁(hotfix),它又称为 patch,指能够修复软件漏洞的一些代码,是一种快速、低成本修复产品软件版本缺陷的方式。
在移动开发里,热修复和常规升级不同,指的是在用户无感知的情况下修复应用存在的 bug。和升级软件版本相比,热补丁的主要优势是不用重新发布新版本,上传到各大应用商店,就可以对应用当前版本的缺陷进行修复。
目前,行业内大家所熟知的热修复技术包括:Dexposed、AndFix、ClassLoader 等。这里,我们来概述一下这几个热修复技术都有哪些特点。
1、Dexposed 是阿里巴巴无线事业部第一个重量级 Andorid 开源软件,基于 Root 社区著名开源项目 Xposed 改造剥离了 Root 部分,演化为服务于所在应用自身的 AOP 框架。它支撑了阿里大部分 App 的在线分钟级客户端 bugfix 和线上调试能力。
Dexposed 的 AOP 是实现了纯非侵入式,没有任何注释处理器,weaver 或者字节码重写程序。Dexposed 的集成非常简单,就像加载一个 JNI 库一样,只需要在初始化的时候插入一行代码。
经典案例:
- 典型的 AOP 编程
- 仪表化 (测试,性能监控等等)
- 在线热修复(重要,关键,安全漏洞等等)
- SDK hooking,更好的开发体验
2、AndFix 是阿里巴巴开源的 Android 应用热修复工具,帮助 Anroid 开发者修复应用的线上问题。Andfix 是 “Android hot-fix” 的缩写。AndFix 支持 Android 2.3 - 6.0,ARM 和 x86 架构,dalvik 运行时和 art 运行时。AndFix 的分支是 .apatch 文件。
生成 .apatch 文件:
合并 .apatch 文件:
想要了解更多
8 月 27 日(周六)20:00-21:00,带你一起来解读那些年热修复带来的坑 解析阿里的热修复解法!
阿里百川 HotFix 从直播当晚开始正式进行公测,感兴趣的读者可以到阿里百川官网了解。
扫码下面的二维码参与8 月27 日的直播活动(直播当天会在群里公布直播链接哦),并在阿里百川论坛( https://baichuan.bbs.taobao.com )跟帖回复“你在开发以及热修复过程中踩过的那些坑,以及对热修复技术领域的吐槽、使用感受”就有机会获得阿里巴巴定制电脑包、阿里百川个性 T 恤精美礼品喔!
- 回复内容字数不得少于 50 字;
- 回复内容需和热修复领域有关,如建议、使用感受、不爽的点或期待的服务等;
- 活动 & 扫码时间:8 月 16 日——8 月 27 日;
- 直播时间:8 月 27 日晚 20:00-21:00;
活动奖品
- 回复内容质量越高奖品越丰厚,我们会邀请阿里热修复技术专家对回复内容进行评分,得分最高的 3 位将获得——阿里定制电脑包。
- 随机抽选出 10 名幸运小伙伴获得——阿里百川定制个性 T 恤;
备注
- 活动结束后,小编会通过电话确认实物礼品的邮寄地址,请您配合提供;
- 灌水帖不计入发帖量和回帖量;
- 获奖者会在活动结束后的 7 个工作日内在本帖下方公布,所有礼品均在活动结束后 7 个工作日内发放;
查看直播内容回顾:百川解码精彩回顾:热修复的坑和阿里的解
申请阿里百川 HotFix 公测:阿里百川官网
评论