基于源码的Tinker热修复框架分析
文章平均质量分 79
本栏从热修复框架的例子运行,dex文件格式,补丁加载过程,补丁生成,补丁合成,tinker插件等全方面进行分析和探索。结合源码,内容比较详细,能够让你更好地理解tinker框架的原理。
WellerV
天生记忆力差,写下来才放心。
展开
-
热更新Tinker研究(十一):so文件的patch
热更新Tinker研究-so文件的patch 本文主要通过对so_meta.txt的解析,结合源码来对tinker框架对于so文件的patch过程进行讲解。原创 2017-04-20 14:34:47 · 3568 阅读 · 0 评论 -
热更新Tinker研究(十):Res文件的patch
热更新Tinker研究-Res文件的patch 本文主要通过对res_meta.txt文件的分析,讲解tinker框架对于res文件的patch过程。原创 2017-04-20 14:31:17 · 2438 阅读 · 0 评论 -
热更新Tinker研究(九):Dex文件的patch
热更新Tinker研究-Dex文件的patch 本文主要讲解dex文件的patch过程,从tinker的DexPatchFile格式分析,对doFullPatch()作为重点讲解。原创 2017-04-20 14:29:04 · 3536 阅读 · 0 评论 -
热更新Tinker研究(八):res和so的patch文件生成
热更新Tinker研究-res和so的patch文件生成ResDiffDecoder和BsDiffDecoder分别是负责resource和so文件的patch生成相关的,它们很多地方比较相似,这里放在一起来说明。一、ResDiffDecoderResDiffDecoder是控制resources的patch文件生成的,主要是控制增加、修改和删除的信息,这里对于大文件和小文件也有不同的区分,小文件只原创 2017-04-20 14:25:21 · 2681 阅读 · 0 评论 -
热更新Tinker研究(七):Dex的patch文件生成
热更新Tinker研究-Dex的patch文件生成[toc] ApkDecoder中的dexPatchDecoder负责dex的patch生成工作,dexPatchDecoder实际上是UniqueDexDiffDecoder类型。这一系列相关的类的关系如下图所示。 BaseDecoder中有三个抽象方法,onAllPatchesStart(), patch(File oldFile, Fi原创 2017-04-20 14:05:48 · 4265 阅读 · 0 评论 -
热更新Tinker研究(六):TinkerPatchPlugin
热更新Tinker研究-TinkerPatchPlugin 在我们运行tinkerPatchDebug或者tinkerPatchRelease任务的时候,会执行TinkerPatchPlugin的apply(),实际上编写一个gradle的task只需要继承Plugin即可。本文主要讲解插件主要构建的task的功能以及在打包流程中的作用。原创 2017-04-20 13:58:43 · 4563 阅读 · 6 评论 -
热更新Tinker研究(五):Application的隔离
热更新Tinker研究-Application的隔离由于程序默认会加载Application类,所以框架的补丁将不能对它修改了。但是实际过程中却可能需要修改Application中的某些功能。隔离Applicationtinker采用的方案是,将原来的Application类隔离起来,即其他任何类都不能再引用我们自己的Application。需要使用到Application类功能的地方采用Appli原创 2017-04-20 13:44:40 · 3159 阅读 · 1 评论 -
热更新Tinker研究(四):TinkerLoader
热更新Tinker研究-TinkerLoader 本文主要讲解tinker框架如何加载已经被打上补丁应用的过程。合成补丁后如何在启动后对应用进行更改呢,处理这个事情的主要类是TinkerLoader,对应dex、res、so文件分别是TinkerDexLoader,TinkerResourceLoader以及TinkerSoLoader。原创 2017-04-20 11:46:56 · 3682 阅读 · 0 评论 -
热更新Tinker研究(三):加载补丁
热更新Tinker研究-加载补丁本文主要讲解Tinker加载patch.apk的过程,主要是研究当把patch_signed_7zip.apk推送到sdcard之后,点击LOAD PATCH按钮之后的流程分析。原创 2017-03-22 17:41:30 · 9616 阅读 · 0 评论 -
热更新Tinker研究(二):结合源码学习Dex格式
结合tinker源码,使用010 Editor工具对dex文件结构进行分析,包含header,stringIds,typeIds等,对dex文件中使用的数据结构进行讲解。原创 2017-03-15 15:56:20 · 2584 阅读 · 0 评论 -
热更新Tinker研究(一):运行tinker-sample-android
热更新Tinker研究(一):运行tinker-sample-android热更新Tinker研究本文通过对于tinker框架例子工程的分析,讲解了如何使用tinker以及如果操作tinker的patch。并且通过对脚本的分析,来讲解一些配置属性的作用。原创 2017-03-15 09:34:38 · 5004 阅读 · 1 评论