一、概述
热修复这项技术,基本上已经成为项目比较重要的模块了。主要因为项目在上线之后,都难免会有各种问题,而
依靠发版去修复问题,成本太高了。
现在热修复的技术基本上有阿里的 AndFix、QZone 的方案、美团提出的思想方案以及腾讯的 Tinker 等。
其中 AndFix 可能接入是最简单的一个(和 Tinker 命令行接入方式差不多),不过兼容性还是是有一定的问题
的;QZone 方案对性能会有一定的影响,且在 Art 模式下出现内存错乱的问题(其实这个问题我之前并不清楚,
主要是 tinker 在 MDCC 上指出的);美团提出的思想方案主要是基于 Instant Run 的原理,目前尚未开源,不过
这个方案我还是蛮喜欢的,主要是兼容性好。
这么看来,如果选择开源方案,tinker 目前是最佳的选择,tinker 的介绍有这么一句:
Tinker 已运行在微信的数亿 Android 设备上,那么为什么你不使用 Tinker 呢?
好了,说了这么多,下面来看看 tinker 如何接入,以及 tinker 的大致的原理分析。希望通过本文可以实现帮助
大家更好的接入 tinker,以及去了解 tinker 的一个大致的原理。
二、接入 Tinker
接入 tinker 目前给了两种方式,一种是基于命令行的方式,类似于 AndFix 的接入方式;一种就是 gradle 的方
式。
考虑早期使用 Andfix 的 app 应该挺多的,以及很多人对 gradle 的相关配置还是觉得比较繁琐的,下面对两种
方式都介绍下。
(1)命令行接入
接入之前我们先考虑下,接入的话,正常需要的前提(开启混淆的状态)。