如今SDK开发(插件化)越来越普遍,使用过程中若出现隐形bug,或者小的需求变更,这时就可以使用动态加载,热补丁技术来实现。
实现原理: 利用DexClassloader.loadclass实现
实现步骤:
1.将插件模块编译生成jar后,利用命令dx工具打包生成二进制的jar包(暂命名为new.jar)。
2.新建一个lib工程(暂时命名为Module A),此lib工程主要实现两个功能:
(1)对客户提供接口来调用new.jar中相应的功能。
(2)内部利用DexClassloader.loadclass来加载相应的类,实现客户需要的功能。
3.将new.jar添加到Module A的asserts目录下,配置build.gradle生成带assets文件夹的jar包.
具体实现参考文章:
配置build.gradle生成带assets文件夹的jar包
4.将(3)中生成的jar包放入到具体工程libs下即可引用new.jar中包括的功能。