Android 全面插件化 RePlugin 流程与源码解析
转自 Android 全面插件化 RePlugin 流程与源码解析 RePlugin,360开源的全面插件化框架,按照官网说的,其目的是“尽可能多的让模块变成插件”,并在很稳定的前提下,尽可能像开发普通App那样灵活。那么下面就让我们一起深入♂了解它吧。 (ps :阅读本文请多参考源码图片 ( ̄^ ̄)ゞ ) 一、介绍 RePlugin对比其他插件化,它的强大和特色,在于它只Hook住了ClassLoader。One Hook这个坚持,最大程度保证了稳定性、兼容性和可维护性,详见 《全面插件化——RePlugin的使命》 。当然,One Hook也极大的提高了实现复杂程度性,其中主要体现在: 增加了Gradle插件脚本,实现开发中自动代码修改与生成。 分割了插件库和宿主库的代码实现。 代码中存在很多不少 @deprecated 、 TODO 和临时修改。 初始化、加载、启动等逻辑比较复杂。 图一 Replugin项目结构 本篇将竭尽所能,为各位介绍其流程和内部实现,如果存在一些地方存在纰漏,还请指出。文章篇幅较长,需耐心阅读,阅读时可结合图片源码,同时欢迎收藏,或选择感兴趣点阅读,下面主要涉及: 二、ClassLoader基础知识。 三、Replugin项目原理和结构分析。 四、Replugin的ClassLoader。 五、Replugin的相关类介绍。 六