2019-01-25android热更新笔记

参考地址:
https://blog.csdn.net/u013132758/article/details/80954639
热修复的原理:
1 就是通过判断本地的.dex对其进行修改,因为安卓apk在安装的时候会在本地生成一个.dex文件
2 通过DexClassLoader这个类来加载 它的构造器有4个参数代码如下:

 // 1.加载应用程序dex的Loader
            PathClassLoader pathLoader = (PathClassLoader) appContext.getClassLoader();
            for (File dex : loadedDex) {
                // 2.加载指定的修复的dex文件的Loader
                DexClassLoader dexLoader = new DexClassLoader(
                        dex.getAbsolutePath(),// 修复好的dex(补丁)所在目录
                        fopt.getAbsolutePath(),// 存放dex的解压目录(用于jar、zip、apk格式的补丁)//data/data/包名/files/这个下面
                        null,// 加载dex时需要的库
                        pathLoader// 父类加载器
                );

Tinker官方文档:
https://github.com/Tencent/tinker/wiki/Tinker-%E6%8E%A5%E5%85%A5%E6%8C%87%E5%8D%97

猜你喜欢

转载自blog.csdn.net/weixin_34162695/article/details/86784968