Android热修复系列
文章平均质量分 97
主要讲解目前Android的主流Hotfix技术方案和原理以及源码解析。
丶小嵩
Every journey begins with the first step.
展开
-
阿里 Andfix 介绍及原理解析
开源项目官方介绍:AndFix judges the methods should be replaced by java custom annotation and replaces it by hooking it. AndFix has a native method art_replaceMethod in ART or dalvik_replaceMethod in Dalvik.从...原创 2018-09-21 21:14:20 · 2916 阅读 · 0 评论 -
微信Tinker 热修复介绍及接入(一)
热修复(HotFix)是以补丁的方式动态修复紧急Bug,不再需要重新发布App,不需要用户重新下载覆盖安装的方式来实现代码的替换修改。这里就不多啰嗦了,可以自行搜索网上的介绍。目前主流HotFix方案对比...原创 2017-06-22 20:34:22 · 4285 阅读 · 0 评论 -
Tinker原理深入理解(二)
原理及介绍现阶段,Android热补丁技术大致分为以下两个流派:Native:代表有阿里的Dexposed、AndFix与腾讯的内部方案KKFix;Java:代表有Qzone的超级补丁、大众点评的nuwa、美团的robust、百度金融的rocooFix, 饿了么的amigo。Native流派与Java流派都有着自己的优缺点,它们具体差异可参考此文:微信Android热补丁实践演进...原创 2017-07-01 17:34:31 · 7970 阅读 · 0 评论 -
Tinker 合并及加载补丁过程源码分析 (三)
前言上篇文章我们讲了Tinker实现的主要原理,本篇文章主要对Tinker源码中补丁安装合并以及加载过程进行分析,本文分析基于Tinker 1.9.8 版本。主要内容有以下几点:安装合并补丁包过程加载补丁过程分析加载补丁资源过程分析加载补丁SO文件分析一、安装合并补丁包过程分析时序图如下:大致流程:1.1 在代理 Application 中初始化 Ti...原创 2018-08-27 11:57:35 · 2774 阅读 · 1 评论 -
美团热修复 Robust 方案接入(一)
方案介绍Robust是美团点评技术团队提供的Android热修复解决方案,基于InstantRun方案实现,属于方法级修复。Robust的补丁成功率高达99%,总体而言它是一个比较稳定的热修复方案,对于追求补丁稳定可靠的项目,接入Roubust是一个不错的选择。接下来我们介绍一下如何去接入Robust。一、接入步骤:1.1 在整个项目的build.gradle加入classpa...原创 2018-08-29 18:27:23 · 4381 阅读 · 4 评论 -
美团热修复 Robust 原理解析(二)
Robust属于 Java方案,它是基于Instant Run 实现的。我们知道InstantRun 对应三种更新机制: 冷插拔,我们称之为重启更新机制 温插拔,我们称之为重启Activity更新机制 热插拔,我们称之为热更新机制 如果不熟悉 InstantRun,可参考这篇文章: 《从Instant run谈Android替换Application和动态加载机制》实现原理有...原创 2018-08-30 17:11:14 · 5123 阅读 · 0 评论 -
阿里 Dexposed 热修复原理
前言Andfix 算是热修复方案中,native流派的典范了。在讲解Andfix之前,我们首先了解一下Dexposed,Andfix 是在Dexposed的基础上演进的。Dexposed介绍阿里手淘团队基于 Xposed 研发出来的 AOP 框架,方法级粒度,可以进行 AOP 编程、插桩、热补丁、SDK hook 等功能。它的热补丁方案原理图大致如下:: 从上图中我们可以看出,它...原创 2018-08-18 20:38:45 · 1106 阅读 · 0 评论 -
Qzone 超级补丁热修复方案原理
介绍Qzone 超级补丁技术基于dex分包方案,使用了多dex加载(multidex)的原理,大致的过程就是:把BUG方法修复以后,放到一个单独的dex文件,然后插入到dexElements数组的最前面,让虚拟机去加载修复完后的方法。该方案的灵感来源? 没错就是类加载机制,相信大部分同学都对它有所了解吧。ClassLoader 类加载机制Android应用程序本质上使用的是j...原创 2018-08-18 20:13:57 · 5733 阅读 · 1 评论