美文网首页
热修复技术实践之类加载方案

热修复技术实践之类加载方案

作者: 吃饱了就送 | 来源:发表于2019-12-31 14:52 被阅读0次

项目地址
类加载方案的原理是在app重新启动后让Classloader去加载新的类。因为在
app运行到一半的时候,所有需要发生变更的类已经被加载过了,在Android上是
无法对一个类进行卸载的。如果不重启,原来的类还在虚拟机中,就无法加载新类。
因此,只有在下次重启的时候,在还没走到业务逻辑之前抢先加载补丁中的新类,这
样后续访问这个类时,就会Resolve为新类。从而达到热修复的目的。

将修复好的dex文件push到SD卡,模拟从服务器下载

adb push /Users/keecham/Desktop/classes2.dex /sdcard

复制dex到私有目录

FileUtils.copyFile(sourceFile, targetFile);

加载修复后的dex文件

FixDexUtils.loadFixedDex(this);

apk 安装时,系统会使用 PathClassLoader 来加载apk文件中的dex,PathClassLoader的构造方法中,调用父类的构造方法,实例化出一个 DexPathList ,DexPathList 通过 makePathElements 在所有传入的dexPath 路径中,找到DexFile,存入 Element 数组,在应用启动后,所有的类都在 Element 数组中寻找,不会再次加载。

相关文章

  • 热修复技术实践之类加载方案

    项目地址类加载方案的原理是在app重新启动后让Classloader去加载新的类。因为在app运行到一半的时候,所...

  • Android热修复:Qfix方案的gradle实践

    Android热修复:Qfix方案的gradle实践 一、Android热修复方案的发展 Android热修复技术...

  • Andfix热修复技术浅析

    By吴思博 一、什么是热修复: 二、技术背景 三、当前主流的热修复方案比较 四、Andfix的介绍与实践(开源) ...

  • 安卓面试总结——提升

    1.热修复的几种方式 1.通过更改dex加载顺序实现热修复 热修复是基于dex分包方案,和Android虚...

  • android 热修复之类加载机制

    文章目标 Android类加载机制介绍 javassist动态修改字节码 实现热补丁动态修复 Android类加载...

  • 笔记 深入探索Android热修复技术原理

    阿里电子书《深入探索Android热修复技术原理》整理的笔记 1.热修复技术介绍 代码修复两大主要方案底层替换方案...

  • Android热修复技术选型

    目前Android业内,热修复技术百花齐放,各大厂都推出了自己的热修复方案,使用的技术方案也各有所异,当然各个方案...

  • 热修复技术方案

    一、热修复技术方案概况: 1、技术概况: 2015年以来,Android开发领域里对热修复技术的讨论和分享越来越多...

  • 热修复技术概要

    市面上热门热修复框架对比 代码修复 底层替换方案(热部署 ) 这个方案由阿里的Anfix首先提出,在已经加载了的类...

  • 热修复技术在开课啦Android应用中的评估

    一、热修复方案的意义: 1、热修复对业界的影响: 2015年以来,Android开发领域里对热修复技术的讨...

网友评论

      本文标题:热修复技术实践之类加载方案

      本文链接:https://www.haomeiwen.com/subject/cdypoctx.html