RePlugin是一套完整的、稳定的、适合全面使用的,占坑类插件化方案,由360手机卫士的RePlugin Team研发,也是业内首个提出”全面插件化“(全面特性、全面兼容、全面使用)的方案。
以上是官方的介绍,github地址如下:
https://github.com/Qihoo360/RePlugin
这是本人项目目录,可以先导入一下以下replugin相关的4个module
下面就说下具体的接入步骤,主要分为以下几步:
1.插件接入步骤
插件部分的接入也可以按照官方的教程来。插件的接入其实很简单,不管是新开发的还是将现有的项目改造成插件化。都一般有以下几步
第 1 步:添加 RePlugin Plugin Gradle 依赖
在项目根目录的 build.gradle(注意:不是 app/build.gradle) 中添加 replugin-plugin-gradle 依赖:
第 2 步:添加 RePlugin Plugin Library 依赖
在 app/build.gradle 中应用 replugin-plugin-gradle 插件,并添加 replugin-plugin-lib 依赖:
其中repluginPluginConfig是我参考官方demo加上去的。
官方到这里就完了,但是我强烈建议你把下面一步也做了。
第3步 配置插件的别名
在插件的AndroidManifest.xml文件中配置插件的别名,方便后面的使用
android:value字段的值就是插件的别名。
这样,插件部分的接入基本完成了。下面有一步我觉得可以做一下。
4 测试插件的正确性
将接入后的插架编译成单独的apk,测试其功能是否正常,如果不正常则需要排查原因,做这一步是表明插件在安装前是正常的,防止因为插件本身的问题导致的错误。
2 宿主接入步骤
第 1 步:添加 RePlugin Host Gradle 依赖
这一步没什么好说的。
在项目根目录的 build.gradle(注意:不是 app/build.gradle) 中添加 replugin-host-gradle 依赖:
第 2 步:添加 RePlugin Host Library依赖
在 app/build.gradle 中应用 replugin-host-gradle 插件,并添加 replugin-host-lib 依赖:
需要注意的是apply plugin: ‘replugin-host-gradle’ 这一行需要放在 android{}之后。
另外一个需要注意版本的问题,目前最新的版本是2.2.1 如下,要不然下载不下来。
然后点击gradle同步,同步完成之后就可以进行下一步了
第 3 步:配置 Application 类
根据官方文档的描述可以继承RePluginApplication,也可以采用非继承式来初始化,我一般采用继承式
另外,如果你的宿主配置过程中有什么错误,建议先下载官方的demo进行运行,然后参考官方的demo进行配置。
3 .使用插架
宿主接入了,插件也接入了,并且单独运行也没问题了,接下来我就看如何使用了。关于插架的使用可以参考官方文档。不过我这里要介绍一下我的一些简单使用。
1 插件的安装
Replugin的插件分为内部插件,外部插件。简单的说在编译前放入assets\plugins 下的xxx.jar就是内部插件,其他在运行期从网上下载的或者放入到其他位置,例如SD卡上的xxx.apk都是外部插件。内部插件与外部插件有以下几大不同
1 内部插件是xxx.jar(编译出apk以后,直接将文件改成xxx.jar)目录是assets\plugins,外置插件就是xxx.apk形式(内置插件进行升级之后也变为外置插件了)
2 内部插件不需要安装,直接调用。外部插件需要安装
3 内部插件默认的别名是 文件名 ,外部插件如果没有在manifest.xml中声明就是默认的包名
所以这也是为什么我刚刚让manifest.xml进行声明的原因了。
因此,对于内部插件,直接在编译前放入assets\plugins即可。后续可直接使用
对于外部插件,使用前需要调用RePlugin.install(fileName);进行显式的安装
4.宿主调起插件
在宿主的MainActivity(在上面插件中配置的启动宿主的activity)中点击按钮调起插件,appone为之前配置的插件别名,后面一个参数则为宿主调起插件中MainActivity
至此接入完成
本人是参考https://blog.youkuaiyun.com/qiyei2009/article/details/78236520这篇博文接入