Android类加载机制
1、DexClassLoader可以加载jar/apk/dex,可以从SD卡中加载未安装的apk 2、PathClassLoader只能加载系统中已经安装过的apk
热修复机制的原理
有一个dexElement数组,里面放的是dex文件,dexElement会在基类的baseClassLoader中创造好,我们会通过classLoader不断的遍历这个数组,加载这个数组中的dex文件,这样baseclassLoader
如果加载到一个正确的类以后,就不会去加载那个有crash的类,我们把正确的类放在dex文件当中,
并把这个dex文件放到dexElement数组的最前面,等它通过DexclassLoader类加载器去加载这个类的时候,就不会去加载处于dexElement后面的那个dex文件,这个就是热修复的过程。
或是说
在classLoader中创建dexElement这样一个dex文件的数组,然后根据线上的crash日志定位去找到
对应的那个crash类文件,修改这个类后然后把这个类文件打包出来一个dex文件,放到dexElement数组的最前方,classLoader在遍历这个数组的时候就不会去加载有问题的线上crash的那个dex文件,而
只会去加载那个修复完crash的dex文件
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦