Android热修复技术专题:来自微信、淘宝、支付宝、QQ空间的热修复方案

news/2024/11/23 3:22:23/

最近好多人都讨论关于热更新的话题,所以查询了一些资料看看

当一个App发布之后,突然发现了一个严重bug需要进行紧急修复,这时候公司各方就会忙得焦头烂额:重新打包App、测试、向各个应用市场和渠道换包、提示用户升级、用户下载、覆盖安装。有时候仅仅是为了修改了一行代码,也要付出巨大的成本进行换包和重新发布。

这时候就提出一个问题:有没有办法以补丁的方式动态修复紧急Bug,不再需要重新发布App,不再需要用户重新下载,覆盖安装?答案当然是有的,那就是最近涌现出来得热补丁方案,主要包括淘宝的Dexposed、支付宝的AndFix、QQ空间的ClassLoader、微信的Tinker、Nuwa五种。事实上,Android官方也使用热补丁技术实现Instant Run。它分为Hot Swap、Warm Swap与Cold Swap三种方式,大家可以参考英文介绍,也可以看参考文章中的翻译稿。最新的Instant App应该也是采用类似的原理,但是Google Play是不允许下发代码的,这个海外App需要注意一下。

关于热补丁方案做了如下专题文章推荐,如果大家有更多好的文章,欢迎提交Pull Request,或者Issues

1、 Dexposed、AndFix、ClassLoader等各大热补丁方案分析和比较

主要分析了Dexposed、AndFix、ClassLoader这三种方案的原理原理和各自的优缺点,感觉现在文章可以加入Instant Run和微信的Tinker热补丁方案了

2、Android App热补丁动态修复技术介绍及QQ空间热补丁动态修复技术方案原理

Android QQ空间团队提出了独特的解决方法,该方案基于的是android dex分包方案的。具体大家直接点击原文查看

3、微信Android热补丁实践演进之路

文章介绍了热补丁主要是让应用能够在无需重新安装的情况实现更新,帮助应用快速建立动态修复能力,同时对比了Dexposed、AndFix、QQ空间的ClassLoader 等等的业务局限然后根据微信自身的需求推出了微信自己的热补丁方案Tinker。

4、Alibaba热修复方案系列文章(包含AndFix、Dexposed框架)

Alibaba 出品的热修复方案,主要涉及到AndFix、Dexposed框架的使用和原理分析。

5、Instant Run英文原文(需要***)

6、Instant Run工作原理及用法

第5、第6篇,简单明了的带你看懂Instant Run的运作方式。

7、基于Nuwa实现Android自动化HotFix

8、Android 热修复Nuwa的原理及Gradle插件源码解析

 

转载于:https://www.cnblogs.com/earl-yongchang/p/6082145.html


http://www.ppmy.cn/news/395576.html

相关文章

Android热修复技术——QQ空间补丁方案解析(1)

传统的app开发模式下,线上出现bug,必须通过发布新版本,用户手动更新后才能修复线上bug。随着app的业务越来越复杂,代码量爆发式增长,出现bug的机率也随之上升。如果单纯靠发版修复线上bug,其较长的新版覆盖…

Android热修复技术——QQ空间补丁方案解析(3)

如前文所述,要想实现热更新的目的,就必须在dex分包完成之后操作字节码文件。比较常用的字节码操作工具有ASM和javaassist。相比之下ASM提供一系列字节码指令,效率更高但是要求使用者对字节码操作有一定了解。而javaassist虽然效率差一些但是使…

记录一次confluence无法创建新空间的问题修复

不知道从神马时候开始,confluence突然创建不了空间; 1、通过confluence管理员进入故障排除工具; 2、查看具体的问题: 通过日志分析器,最有可能就是下面的一个错误; 打开官方指引: Create Pag…

qq空间找不到服务器或dns错误,qq空间无法正常打开怎么办

在登录QQ空间的时候,有些用户会遇到“如果您看到这个提示,说明QQ空间无法正常打开,请尝试使用空间小助手修复”的提示。今天学习啦小编给你分享一下qq空间无法正常打开的解决方法,欢迎阅读。 qq空间无法正常打开的解决过程 故障排查方法 ping一下QQ空间的…

模仿qq空间评论以及回复

先看需求是怎么样的: 再看评论表结构的设计: create table t_comment (id varchar(32) primary key, #主键Idcustomer_id varchar(32) not null, #用户Idparent_comment_id varchar(32) not null, #父评论Idcontent_id varchar(32) not null, #评论对象的…

Android热修复技术——QQ空间补丁方案解析(2)

接下来的几篇博客我会用一个真实的demo来介绍如何实现热修复。具体的内容包括: 如何打包补丁包如何将通过ClassLoader加载补丁包 1. 创建Demo demo很简单,创建一个只有一个Activity的demo: package com.biyan.demo public class MainActi…

一键删除qq空间说说

var delay1 2500; var delay2 2200; var delay3 4000; var i 0; var next “#pager_next_”; function del() {try{document.querySelector(‘.app_canvas_frame’).contentDocument.querySelector(‘.del_btn’).click();setTimeout(“yes()”, delay2); }catch(err){nex…

QQ空间 安卓App热补丁动态修复技术介绍

【原文地址 点击打开链接】 【各自热修复框架介绍 点击打开链接】 【AndFix使用说明 AndFix使用说明】 AndFix与Nuwa对比 Nuwa是另一个热补丁框架,原理是基于QQ空间团队提出的安卓App热补丁动态修复技术介绍。 与Nuwa相比,AndFix有一下优点&#xf…