热修复原理
热修复Class流派和Dex流派实现原理
Class流派原理基本原理:加载类的时候是找element,每个element对于一个dex。我要把我修复的那个类单独放到dex插入dexlist前面,在你做类加载从前往后找优先从你的dex加载加载的就是你修复后的class.这就是实现代码通过context拿到pathClassLoader,根据你下发的dex生成一个dexclassloader。 拿到两个的pathlist,在拿到两个path
日期 2023-06-12 10:48:40【Android 热修复】热修复原理 ( 热修复框架简介 | 将 Java 字节码文件打包到 Dex 文件 )
文章目录一、 热修复框架简介1、类替换2、so 替换3、资源替换4、全平台支持5、生效时间6、性能损耗7、总结二、 将 Java 字节码文件打包到 Dex 文件一、 热修复框架简介热修复框架 : 热修复框架有很多 , 只选择几个典型的进行对比研究 ;Tinker : 微信 ;QZone : Q 空间 ;AndFix : 阿里 ;Robust : 美团 ;下面从几个方面的功能及性能分析上述四个热修复
日期 2023-06-12 10:48:40【Android 热修复】热修复原理 ( 类加载机制 | PathClassLoader 加载 Dex 机制 | PathDexList 查找 Class 机制 | 类查找的顺序机制 )
文章目录一、 PathClassLoader 加载 Dex 机制二、 PathDexList 查找 Class 机制三、 类查找的顺序机制一、 PathClassLoader 加载 Dex 机制Android 中 Class 加载机制 :Java 代码运行时 , 使用 ClassLoader 加载 Class 字节码文件 , Class 字节码文件 , Jar 文件 , Dex 文件 , 都必须加
日期 2023-06-12 10:48:40【Android 热修复】热修复原理 ( 修复包 Dex 文件准备 | Dex 优化为 Odex | Dex 文件拷贝 | 源码资源 )
文章目录一、修复包 Dex 文件准备二、Odex 优化三、Dex 文件拷贝四、 源码资源一、修复包 Dex 文件准备异常代码 : 故意写一个异常代码 , 并执行该代码 , 肯定会崩溃 ;package kim.hsl.hotfix; import android.util.Log; public class HotFixTest { public void test(){
日期 2023-06-12 10:48:40【Android 热修复】热修复原理 ( Dex 文件拷贝后续操作 | 外部存储空间权限申请 | 执行效果验证 | 源码资源 )
文章目录一、Dex 文件准备二、外部存储空间权限申请1、清单文件申请权限2、动态申请权限三、文件拷贝1、文件拷贝2、执行效果四、 源码资源一、Dex 文件准备在 【Android 热修复】热修复原理 ( 修复包 Dex 文件准备 | Dex 优化为 Odex | Dex 文件拷贝 | 源码资源 ) 博客中 , 进行了文件拷贝简单操作 ;将 SD 卡跟目录中的文件 /storage/emulated
日期 2023-06-12 10:48:40【Android 热修复】热修复原理 ( 类加载分析 | 分析 PathClassLoader 源码 | 分析 BaseDexClassLoader 源码 | 分析 PathDexList 源码 )
文章目录一、分析 PathClassLoader 源码二、分析 BaseDexClassLoader 源码三、分析 PathDexList 源码四、 源码资源一、分析 PathClassLoader 源码PathClassLoader 是 Android 平台的类加载器 , 继承了 BaseDexClassLoader ;public class PathClassLoader extends B
日期 2023-06-12 10:48:40【Android 热修复】热修复原理 ( 加载 Dex 文件到内存中 | DexClassLoader | PathClassLoader | 反射 Element[] dexElements )
文章目录一、加载 Dex 文件到内存中1、文件处理2、加载修复包 Dex 到内存3、获取系统类加载器4、反射获取系统的 Element[] dexElements5、反射获取自己加载的 修复包 Dex 的 Element[] dexElements二、本博客涉及代码三、 源码资源一、加载 Dex 文件到内存中在【Android 热修复】热修复原理 ( 修复包 Dex 文件准备 | Dex 优化为
日期 2023-06-12 10:48:40【Android 热修复】热修复原理 ( 合并两个 Element[] dexElements | 自定义 Application 加载 Dex 设置 | 源码资源 )
文章目录一、合并两个 Element[] dexElements二、 完整修复包加载工具类三、 源码资源一、合并两个 Element[] dexElements在 【Android 热修复】热修复原理 ( 加载 Dex 文件到内存中 | DexClassLoader | PathClassLoader | 反射 Element[] dexElements ) 博客中已经将 系统加载的 Dex 文件
日期 2023-06-12 10:48:40【Android 热修复】热修复原理 ( 多 Dex 打包机制 | 多 Dex 支持 | Dex 分包设置 | 开发和产品风格设置 | 源码资源 )
文章目录一、Dex 打包设置1、多 Dex 支持2、Dex 分包设置3、开发和产品风格设置 ( 非必须 )二、完整 build.gradle 配置1、build.gradle 配置2、dex.keep 配置二、 源码资源一、Dex 打包设置在 【Android 热修复】热修复原理 ( 类加载机制 | PathClassLoader 加载 Dex 机制 | PathDexList 查找 Class
日期 2023-06-12 10:48:40热修复原理
--摘自《Android进阶解密》 1.Instant Run编译部署 1)Hot swap:代码的增量改变不需要重启App,甚至不需要重启当前的Activity。修改一个现有方法中的代码时会采用Hot Swap 2)Warm Swap:App不需要重启,但是Activity需要重启。修改或删除一个现有的资源文件时会采用Warm Swap 3)Cold Swap:App需要重启,但是不需要重新
日期 2023-06-12 10:48:40《深入探索Androdi热修复技术原理(阿里巴巴)》--读书笔记
No1: Hybrid就是原生和Html5混合开发app No2: 插件化方法Altas或者DroidPlugin No3: 热修复技术可以把更新补丁上传到云端,此时APP就可以直接从云端下拉补丁直接应用生效 优势: 1)无需重新发版,实时高效热修复 2)用户无感知修复,无需下载新的应用,代价小 3)修复成功率高,把损失降到最低 No4: 热修复框架Sophix:包括代码修复、资源修复、so修复
日期 2023-06-12 10:48:40热修复原理
--摘自《Android进阶解密》 1.Instant Run编译部署 1)Hot swap:代码的增量改变不需要重启App,甚至不需要重启当前的Activity。修改一个现有方法中的代码时会采用Hot Swap 2)Warm Swap:App不需要重启,但是Activity需要重启。修改或删除一个现有的资源文件时会采用Warm Swap 3)Cold Swap:App需要重启,但是不需要重新
日期 2023-06-12 10:48:40《深入探索Androdi热修复技术原理(阿里巴巴)》--读书笔记
No1: Hybrid就是原生和Html5混合开发app No2: 插件化方法Altas或者DroidPlugin No3: 热修复技术可以把更新补丁上传到云端,此时APP就可以直接从云端下拉补丁直接应用生效 优势: 1)无需重新发版,实时高效热修复 2)用户无感知修复,无需下载新的应用,代价小 3)修复成功率高,把损失降到最低 No4: 热修复框架Sophix:包括代码修复、资源修复、so修复
日期 2023-06-12 10:48:40Android类加载器和热修复原理
Android ClassLoader学习笔记 Activity Context 使用的加载器类型 Class
日期 2023-06-12 10:48:40【Android 热修复】热修复原理 ( 合并两个 Element[] dexElements | 自定义 Application 加载 Dex 设置 | 源码资源 )
文章目录 一、合并两个 Element[] dexElements二、 完整修复包加载工具类三、 源码资源 一、合并两个 Element[] dexElements 在 【A
日期 2023-06-12 10:48:40【Android 热修复】热修复原理 ( 多 Dex 打包机制 | 多 Dex 支持 | Dex 分包设置 | 开发和产品风格设置 | 源码资源 )
文章目录 一、Dex 打包设置1、多 Dex 支持2、Dex 分包设置3、开发和产品风格设置 ( 非必须 ) 二、完整 build.gradle 配置1、build.gradle 配置2、dex.keep
日期 2023-06-12 10:48:40【Android 热修复】热修复原理 ( 加载 Dex 文件到内存中 | DexClassLoader | PathClassLoader | 反射 Element[] dexElements )
文章目录 一、加载 Dex 文件到内存中1、文件处理2、加载修复包 Dex 到内存3、获取系统类加载器4、反射获取系统的 Element[] dexElements5、反射获取自己加载的 修复包 Dex 的 E
日期 2023-06-12 10:48:40【Android 热修复】热修复原理 ( 类加载分析 | 分析 PathClassLoader 源码 | 分析 BaseDexClassLoader 源码 | 分析 PathDexList 源码 )
文章目录 一、分析 PathClassLoader 源码二、分析 BaseDexClassLoader 源码三、分析 PathDexList 源码四、 源码资源 一、分析 PathCl
日期 2023-06-12 10:48:40【Android 热修复】热修复原理 ( Dex 文件拷贝后续操作 | 外部存储空间权限申请 | 执行效果验证 | 源码资源 )
文章目录 一、Dex 文件准备二、外部存储空间权限申请1、清单文件申请权限2、动态申请权限 三、文件拷贝1、文件拷贝2、执行效果 四、 源码资源 一、Dex 文件准备
日期 2023-06-12 10:48:40【Android 热修复】热修复原理 ( 修复包 Dex 文件准备 | Dex 优化为 Odex | Dex 文件拷贝 | 源码资源 )
文章目录 一、修复包 Dex 文件准备二、Odex 优化三、Dex 文件拷贝四、 源码资源 一、修复包 Dex 文件准备 异常代码 : 故意写一个异常代码 , 并执行该代码
日期 2023-06-12 10:48:40【Android 热修复】热修复原理 ( 类加载机制 | PathClassLoader 加载 Dex 机制 | PathDexList 查找 Class 机制 | 类查找的顺序机制 )
文章目录 一、 PathClassLoader 加载 Dex 机制二、 PathDexList 查找 Class 机制三、 类查找的顺序机制 一、 PathClassLoader 加载
日期 2023-06-12 10:48:40【Android 热修复】热修复原理 ( 热修复框架简介 | 将 Java 字节码文件打包到 Dex 文件 )
文章目录 一、 热修复框架简介1、类替换2、so 替换3、资源替换4、全平台支持5、生效时间6、性能损耗7、总结 二、 将 Java 字节码文件打包到 Dex 文件 一、 热修复
日期 2023-06-12 10:48:40Andfix热修复框架原理及源代码解析-上篇
热补丁介绍及Andfix的使用 Andfix热修复框架原理及源代码解析-上篇 Andfix热修复框架原理及源代码解析-下篇 1.不知道怎样使用的同学,建议看看我上一篇写的介绍热补丁和Andfix的使用,这样你才有一个大概的框架。通过使用Andfix,事实上我们心中会有一个大概的轮廓,它的工作原理,大概就是。所谓的补丁文件。就是通过打包工具apkpatch比对新的apk和旧的apk之间的差
日期 2023-06-12 10:48:40热修复的原理
我们知道Java虚拟机 —— JVM 是加载类的class文件的,而Android虚拟机——Dalvik/ART VM 是加载类的dex文件, 而他们加载类的时候都需要ClassLoader,ClassLoader有一个子类BaseDexClassLoader,而BaseDexClassLoader下有一个 数组——DexPathList,是用来存放dex文件,当BaseDexClassLoa
日期 2023-06-12 10:48:40