频道栏目
首页 > 程序开发 > 移动开发 > Android > 正文
Android热修复大白话版(Java层)
2017-12-04 09:41:29      个评论    来源:马里奥先生_技术小屋  
收藏   我要投稿

Android热修复大白话版(导读)

首先需要考虑的是类加载机制

常见的有以下四个类加载器:

PathClassLoader
DexClassLoader
BaseDexClassLoader
DexPathList

接着,我们知道:

Android类加载器在加载一个类时会先从自身DexPathList对象中的Element数组中获取(Element[] dexElements)到对应的类,之后再加载。这个过程中遍历的是【数组】,而数组中每一个元素都是【dex文件】类型。

最后:

在循环中,首先遍历出来的是dex文件,然后再是从dex文件中获取class。因此,只要把没有Bug的class打包成一个dex文件,放于Element数组的第一个元素,在进行加载时这样就能保证系统优先获取到的class是第一个元素即修复好的class。

需要注意的是,此时有bug的class还是存在的,只不过在数组的最后,不能被加载到。当进行大版本迭代时,还是得换包处理的。

点击复制链接 与好友分享!回本站首页
上一篇:Android开发Kotlin基础教程
下一篇:Activity 生命周期函数执行过程详解
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站