热更新

1、

线上的apk都会发生崩溃,只要崩溃率在千分之一之下就可以,但是如果超过该比率,就需要马上进行修改。但是正常流程会很长很繁杂。热更新就是为了解决这些问题的。


2、


Dexposed:基于xpost

AndFix:只专注于热更新,比Dexposed性能上更好

Nuwa:基于类加载器加载classloader,将一个dex文件拆分成多个dex文件,在应用启动的时候,会将一个作为主的dex进行加载,应用启动后将逐个加强其它的dex,多个dex文件会排成一个有序的数组,在虚拟机加载的过程中会迅速地遍历这些文件,在每个dex文件中查找对应的类,如果找到就返回,如果没有找到,就继续在下一个dex文件中查找。理论上来说,如果多个dex文件存在相同的类,那么排在之前的dex文件将会被优先选择,这其实是热更新的一个最主要最主要的思想。它其实是不断地去轮询、去遍历dex文件的数组,然后把我们需要修改的类的dex文件加到最前面,然后在轮询的时候就不会加载那个出现问题的dex文件,这就是热更新的原理。

3、热更新原理


pathclassloader:用于加载系统的类和应用的类

dexclassloader:用于加载.class文件、jar文件、apk包等等

4、热修复机制的原理



dexElements:会在基类的baseclassloader中创造好,然后会通过classloader不断遍历这个数组,加载这个数组中的dex文件,dexelements中放的是dex文件。这样baseclassloader加载到正确的类中后,就不会加载那个有cras的类,我们就把这个正确的类放在这个dex文件当中,让这个dex文件排在dexelements数组的前面就可以了



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值