Replugin在项目中的配置

Replugin的背景就不介绍了,感兴趣的可以去这里看看。

首先是在项目的根目录的build.gradle中添加宿主依赖:

classpath 'com.qihoo360.replugin:replugin-host-gradle:2.2.4'

然后在宿主App的build.gradle中添加配置:

apply plugin: 'replugin-host-gradle'

/**
 * 配置项均为可选配置,默认无需添加
 * 更多可选配置项参见replugin-host-gradle的RepluginConfig类
 * 可更改配置项参见 自动生成RePluginHostConfig.java
 */
repluginHostConfig {
    /**
     * 是否使用 AppCompat 库
     * 不需要个性化配置时,无需添加
     */
    useAppCompat = true
    /**
     * 背景不透明的坑的数量
     * 不需要个性化配置时,无需添加
     */
//    countNotTranslucentStandard = 6
//    countNotTranslucentSingleTop = 2
//    countNotTranslucentSingleTask = 3
//    countNotTranslucentSingleInstance = 2
}
以及:
dependencies {
   ...
    implementation 'com.qihoo360.replugin:replugin-host-lib:2.2.4'
}
接着就是重写application了,在这里只说明继承RePluginApplication的情况。

 需要重写CreateConfig方法:

@Override
protected RePluginConfig createConfig() {
    RePluginConfig c = new RePluginConfig();
    // 允许“插件使用宿主类”。默认为“关闭”
    c.setUseHostClassIfNotFound(true);

    // 打印详细日志
    c.setPrintDetailLog(true);

    // FIXME RePlugin默认会对安装的外置插件进行签名校验,这里先关掉,避免调试时出现签名错误
    c.setVerifySign(!BuildConfig.DEBUG);

    // FIXME 若宿主为Release,则此处应加上您认为"合法"的插件的签名,例如,可以写上"宿主"自己的。签名证书的MD5
    // RePlugin.addCertSignature("AAAAAAAAA");

    // 在Art上,优化第一次loadDex的速度
    c.setOptimizeArtLoadDex(true);
    return c;
}
最后将application配置到manifext文件中。
至此宿主APP配置配置完成。

下面接着配置插件:

如果插件跟宿主APP在同一个项目下,那么就要再根目录的build.gradle中添加插件依赖:

classpath 'com.qihoo360.replugin:replugin-plugin-gradle:2.2.4'

然后在插件的buid.gradle中添加配置:

 

apply plugin: 'replugin-plugin-gradle'

repluginPluginConfig {

//插件名
    pluginName = "plugincomponent"
//宿主app的包名
    hostApplicationId = "com.lml.plugin"
//宿主app的启动activity
    hostAppLauncherActivity = "test2018.plugincomponent.MainActivity"
}

且apply plugin: 'replugin-plugin-gradle'必须是在android模块之后配置。

然后再接着配置:
dependencies {
   ...
    implementation 'com.qihoo360.replugin:replugin-plugin-lib:2.2.4'
}
现在宿主APP与插件APP的配置都已经完成,那么就剩下启动了(中间安装插件什么的就自行写了,很简单)。

启动有个地方特别注意:

如果我们在插件APP中的manifext中配置了

<meta-data
    android:name="com.qihoo360.plugin.name"
    android:value="plugincomponent" />
那么启动就可以以插件名的方式启动类似于这样:

Intent plugincomponent = RePlugin.createIntent("plugincomponent", "test2018.plugincomponent.MainActivity");
RePlugin.startActivity(this, plugincomponent);
如果在插件APP中没有配置,那么启动就是以包名的方式启动的:

Intent plugincomponent = RePlugin.createIntent("test2018.plugincomponent", "test2018.plugincomponent.MainActivity");
RePlugin.startActivity(this, plugincomponent);
综上,在使用Replugin的过程中所要注意的就是这些问题了.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值