随着 360 的 RePlugin 全面插件化方案被提出。我相信 RePlugin 会越来越流行。因此便编写了本篇教程。
根据官方的文档提示,我们只需要3步,即可实现RePlugin主程序接入功能。

添加 RePlugin Host Gradle 依赖
在项目根目录的 build.gradle(注意:不是 app/build.gradle) 中添加 replugin-host-gradle 依赖:
buildscript {
dependencies {
classpath 'com.qihoo360.replugin:replugin-host-gradle:2.1.0'
...
}
}
添加 RePlugin Host Library 依赖
在 app/build.gradle 中应用 replugin-host-gradle 插件,并添加 replugin-host-lib 依赖:
apply plugin: 'replugin-host-gradle'
dependencies {
compile 'com.qihoo360.replugin:replugin-host-lib:2.1.0'
...
}
配置 Application 类
让工程的 Application 直接继承自 RePluginApplication。
如果您的工程已有Application类,则可以将基类切换到RePluginApplication即可。或者您也可以用“非继承式”接入。
public class MainApplication extends RePluginApplication {}
既然声明了Application,自然还需要在AndroidManifest中配置这个Application。
<application android:name=".MainApplication" ... />
备选:“非继承式”配置Application
若您的应用对Application类继承关系的修改有限制,或想自定义RePlugin加载过程(慎用!),则可以直接调用相关方法来使用RePlugin。
public class MainApplication extends Application {
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
RePlugin.App.attachBaseContext(this);
....
}
@Override
public void onCreate() {
super.onCreate();
RePlugin.App.onCreate();
....
}
@Override
public void onLowMemory() {
super.onLowMemory();
/* Not need to be called if your application's minSdkVersion > = 14 */
RePlugin.App.onLowMemory();
....
}
@Override
public void onTrimMemory(int level) {
super.onTrimMemory(level);
/* Not need to be called if your application's minSdkVersion > = 14 */
RePlugin.App.onTrimMemory(level);
....
}
@Override
public void onConfigurationChanged(Configuration config) {
super.onConfigurationChanged(config);
/* Not need to be called if your application's minSdkVersion > = 14 */
RePlugin.App.onConfigurationChanged(config);
....
}
}
针对“非继承式”的注意点
- 所有方法必须在UI线程来“同步”调用。切勿放到工作线程,或者通过post方法来执行
- 所有方法必须一一对应,例如 RePlugin.App.attachBaseContext 方法只在Application.attachBaseContext中调用
- 请将RePlugin.App的调用方法,放在“仅次于super.xxx()”方法的后面
实际接入过程中碰到的问题
下载RePlugin依赖包出错:
D:/jeff_workspace/TestRePlugin/app/build.gradle
Error:(33, 13) Failed to resolve: com.qihoo360.replugin:replugin-host-lib:2.1.0
解决过程:查看官方Sample源码中的build.gradle发现问题所在,需要在project下的build.gradle文件中添加以下代码:
//buildscript repositories以及allprojects repositories中添加RePlugin Repository
maven {
url "https://dl.bintray.com/qihoo360/replugin"
}
Gradle构建出现以下错误:
Execution failed for task ':app:processDebugResources'. > D:/jeff_workspace/TestRePlugin/app/src/main/assets/plugins
解决过程:在Github Issues中发现#48也提到了这个问题,解决办法在里面已经给出:
在 assets 下新建文件夹 plugins。

: » RePlugin主程序接入教程
原创文章,作者:wdmbts,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/251608.html