Tinker热修复原理

55 阅读1分钟

下载修复bug的dex文件后,使用文件路径构建DexClassLoader对象,接着通过该对象反射获取pathList属性变量,并通过反射获取pathList中的dexElement数组属性变量。使用context.getClassLoader()强转类型获取系统PathClassLoader对象,再通过反射方式获取系统的dexElement数组,然后将两个数组合并,并将修复的dexElement数组排序到最前面,最后通过反射将合并后的dexElement数组赋值给系统的DexPathList

参照:www.jianshu.com/p/9b98ad3d8…