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


发布评论