一、基本概念
定义:动态的修复或者更新app的行为
热修复的好处:在用户没有感知的情况下完成bug修复和一些小功能的更新
流行的热修复技术:
- QQ空间的超级补丁方案
- 微信的Tinker
- 阿里的AndFix
- 美团的Robust、ele的migo、百度的hotfix
技术对比:
二、Tinker核心原理
- 基于android原生的ClassLoader,开发了自己的ClassLoader
- 基于android原生的aapt,开发了自己的aapt
- 微信团队自己基于Dex文件的格式,研发了DexDiff算法
我们把Tinker的源码下载下来,源码中tinker包含这些目录:
- tinrd-party:这个是tinker所使用到的一些工具类插件,例如tinker的核心bsdiff、dex文件处理工具、解压zip文件之类的。
- tinker-android:这个就是tinker接入到android工程中之后的主要功能模块,包含了patch以及loader的部分。
- tinker-build:tinker对本地apk进行分析打包,生成patch文件的主要包。
- tinker-commons:公共包,放了一些公共的patch算法的东西。
三、接入
tinker的接入详细见Github中的官方接入文档