安卓插件化RePlugin接入记录
准备工作
特别注意: gradle 版本问题
降低版本修改方式 一般使用 3.5.4 + 5.4.1 即可
参考网址: AndroidStudio如何降低Gradle版本兼容老项目_爱吃西蓝花i的博客-CSDN博客_gradle降低版本
修改项目外层的build.gradle 如下所示
buildscript {
repositories {
google()
jcenter()
maven {url “https://maven.google.com”}
maven {url “http://maven.geelib.360.cn/nexus/repository/replugin/”}
}
dependencies {
classpath ‘com.android.tools.build:gradle:3.5.4’
classpath “com.qihoo360.replugin:replugin-host-gradle:3.0.0”
}
}
allprojects {
repositories {
google()
jcenter()
maven { url “https://maven.google.com” }
maven {url “http://maven.geelib.360.cn/nexus/repository/replugin/”}
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
项目的build.gradle修改如下
apply plugin: ‘com.android.application’
android {
compileSdkVersion 28
buildToolsVersion ‘28.0.3’
defaultConfig {
applicationId “htkj.solar.testhost19″//”com.qihoo360.replugin.sample.host”
minSdkVersion 14
targetSdkVersion 28
versionCode 1
versionName “1.0”
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’
}
}
}
apply plugin: ‘replugin-host-gradle’
repluginHostConfig {
useAppCompat = true
useAndroidX = true
// 可以在这里自定义常驻进程的名字
// persistentName = “:XXXXService”
}
dependencies {
implementation fileTree(include: [‘*.jar’], dir: ‘libs’)
implementation ‘androidx.appcompat:appcompat:1.3.1’
implementation ‘androidx.localbroadcastmanager:localbroadcastmanager:1.0.0’
implementation “com.qihoo360.replugin:replugin-host-lib:3.0.0”
}
然后再settings.gradle中删除其他东西只留下这两行
RootProject.name 也可以不要
最后gradle/gradle-wrapper.properties也可以检查一下有没有修改,一般修改File/Project Structure就能自动改变了,没有的话就自己改成对应的Gradle版本号
然后点击那个锤子重新构建即可。
正式接入
宿主程序(主程序)接入新建空的app项目,包名自定义添加 RePlugin Host Gradle 依赖
在项目根目录的 build.gradle(注意:不是 app/build.gradle)中添加replugin-host-gradle依赖
buildscript {
dependencies {
classpath ‘com.qihoo360.replugin:replugin-host-gradle:2.2.4’
…
}
}
添加 RePlugin Host Library 依赖
在 app/build.gradle 中应用 replugin-host-gradle 插件,并添加 replugin-host-lib 依赖
apply plugin: ‘replugin-host-gradle’
/**
* 配置项均为可选配置,默认无需添加
* 更多可选配置项参见replugin-host-gradle的RepluginConfig类
* 可更改配置项参见 自动生成RePluginHostConfig.java
*/
repluginHostConfig {
/**
* 是否使用 AppCompat 库
* 不需要个性化配置时,无需添加
*/
useAppCompat = true
/**
* 背景不透明的坑的数量
* 不需要个性化配置时,无需添加
*/
countNotTranslucentStandard = 6
countNotTranslucentSingleTop = 2
countNotTranslucentSingleTask = 3
countNotTranslucentSingleInstance = 2
}
dependencies {
compile ‘com.qihoo360.replugin:replugin-host-lib:2.2.4’
…
}
注意点:
请将apply plugin: ‘replugin-host-gradle’放在 android{} 块之后,防止出现无法读取applicationId,导致生成的坑位出现异常如果您的应用需要支持AppComat,则除了在主程序中引入AppComat-v7包以外,还需要在宿主的build.gradle中添加下面的代码若不支持AppComat则请不要设置此项
repluginHostConfig {
useAppCompat = true
}
如果您的应用需要个性化配置坑位数量,则需要在宿主的build.gradle中添加下面的代码
repluginHostConfig {
/**
* 背景不透明的坑的数量
*/
countNotTranslucentStandard = 6
countNotTranslucentSingleTop = 2
countNotTranslucentSingleTask = 3
countNotTranslucentSingleInstance = 2
}
配置 Application 类
让工程的 Application 直接继承自 RePluginApplication
public class MainApplication extends RePluginApplication {
}
既然声明了Application,自然还需要在AndroidManifest中配置这个Application。
插件接入
第 1 步:添加 RePlugin Plugin Gradle 依赖
在项目根目录的 build.gradle(注意:不是 app/build.gradle) 中添加 replugin-plugin-gradle 依赖
buildscript {
dependencies {
classpath ‘com.qihoo360.replugin:replugin-plugin-gradle:2.2.4’
…
}
}
第 2 步:添加 RePlugin Plugin Library 依赖
在 app/build.gradle 中应用 replugin-plugin-gradle 插件,并添加 replugin-plugin-lib 依赖
apply plugin: ‘replugin-plugin-gradle’
dependencies {
compile ‘com.qihoo360.replugin:replugin-plugin-lib:2.2.4’
…
}
第 3 步:app中的build.gradle修改
启动插件在assets目录下创建plugins文件夹,将插件APK后缀改为.jar,并拷贝到该目录下在宿主app中调用以下函数,jar包名
RePlugin.startActivity(MainActivity.this,RePlugin.createIntent(“plugina”,”com.example.plugina.MainActivity”));
参数 .jar名 + 插件MainActivity路径
附上demo一个
https://download.csdn.net/download/apple_58054055/87239634