本文主要是介绍Android热修复技术-Tinker,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、基本概念
定义:动态的修复或者更新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中的官方接入文档
这篇关于Android热修复技术-Tinker的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!