Android热修复大白话版(Java层)
来源:互联网 发布:跟程序员有关的电影 编辑:程序博客网 时间:2024/05/24 06:47
Android热修复大白话版(导读)
首先需要考虑的是类加载机制
常见的有以下四个类加载器:
PathClassLoader
DexClassLoader
BaseDexClassLoader
DexPathList
接着,我们知道:
Android类加载器在加载一个类时会先从自身DexPathList对象中的Element数组中获取(Element[] dexElements)到对应的类,之后再加载。这个过程中遍历的是【数组】,而数组中每一个元素都是【dex文件】类型。
最后:
在循环中,首先遍历出来的是dex文件,然后再是从dex文件中获取class。因此,只要把没有Bug的class打包成一个dex文件,放于Element数组的第一个元素,在进行加载时这样就能保证系统优先获取到的class是第一个元素即修复好的class。
需要注意的是,此时有bug的class还是存在的,只不过在数组的最后,不能被加载到。当进行大版本迭代时,还是得换包处理的。
阅读全文
1 0
- Android热修复大白话版(Java层)
- Android热修复之AndFix原理探索(黑科技热修复的Java层实现)
- Java层热修复框架实践
- Android 热修复/热更新
- android热修复--手写热修复
- Android热修复学习(一)
- Android热修复学习(二)
- Android热修复学习(三)
- Android热修复原理(HotFix)初涉
- android热修复框架Tinker(一)
- Android热修复
- Android 热修复总结
- Android 热修复原理
- Android 热修复
- Android热修复分析
- Android 热修复-AndFix
- Android热修复实现
- Android 热修复总结
- selenium单元测试
- Centos7.3 企业项目禅道的安装
- Chrome 开发者工具(DevTools)中所有快捷方式列表
- 顺序表应用7:最大子段和之分治递归法
- selenium TestNG
- Android热修复大白话版(Java层)
- shell的最佳选择——zsh
- MaxScript学习之创建Box
- spark算子总汇
- (Linux)Ubuntu之alias带参数设置
- 集合
- BZOJ1834 [ZJOI2010]network 网络扩容 【最大流,费用流】
- 思科路由器交换机常用命令
- nginx 构建静态网站