- ✅ 支持 AnroidSupport、AndroidX 工程
- ✅ 支持 RePlugin Transform 开关 配置 (
enable
) - ✅ 支持 坑位 Activity 的屏幕方向 配置 (
screenOrientation
) - ✅ 支持 移除 class 文件 配置 (
classExcludes
、classIncludes
) - ✅ 支持 多版本 AGP
2.x
3.x
4.x
(7.x 暂未兼容) - ...
AGP | Gradle Wrapper | Support |
---|---|---|
2.3.3 | 3.3 / 4.6 | ✔️ |
3.2.1 | 4.6 | ✔️ |
3.5.3 | 5.4.1 | ✔️ |
4.1.1 | 6.5 | ✔️ |
7.0.4 | 7.0.2 | ❌ |
注:AGP 即 Android Gradle Plugin
宿主/插件 项目根目录 build.gradle 中加入:
buildscript {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
在宿主工程根目录下 build.gradle 中加入:
buildscript {
...
dependencies {
classpath 'com.android.tools.build:gradle:2.3.3' // AndroidX 工程需升级到 3.2.0 及以上
classpath "com.github.GitLqr.RePluginX:replugin-host-gradle:${RPX_VERSION}"
}
}
在宿主 主 Module(app) 目录下 build.gradle 中加入:
dependencies {
...
implementation "com.github.GitLqr.RePluginX:replugin-host-library:${RPX_VERSION}"
// 注意:如果是 AndroidX 宿主工程,必须添加如下依赖 !!
// implementation "androidx.localbroadcastmanager:localbroadcastmanager:1.0.0"
}
apply plugin: 'replugin-host-gradle'
repluginHostConfig {
// enable = true // 是否启用插件功能,默认为true
screenOrientation = 'landscape' // 坑位 Activity 方向(portrait / landscape)
...
}
enable
:是否启用插件功能,默认为 true,宿主工程一般不会用到!screenOrientation
:坑位 Activity 的屏幕方向配置,默认不配置即为竖屏portrait
,如需横屏可配置为landscape
。
在插件工程根目录下 build.gradle 中加入:
buildscript {
...
dependencies {
classpath 'com.android.tools.build:gradle:2.3.3' // AndroidX 工程需升级到 3.2.0 及以上
classpath "com.github.GitLqr.RePluginX:replugin-plugin-gradle:${RPX_VERSION}"
}
}
在插件 主 Module(app) 目录下 build.gradle 中加入:
dependencies {
...
implementation "com.github.GitLqr.RePluginX:replugin-plugin-library:${RPX_VERSION}"
}
// 这个plugin需要放在android配置之后,因为需要读取android中的配置项
apply plugin: 'replugin-plugin-gradle'
repluginPluginConfig {
enable = true // 是否启用插件功能,默认为true
classExcludes = [] // 移除class文件配置(正则表达式),例如:["androidx.*"]
classIncludes = [] // 保留class文件配置(正则表达式),例如:["androidx.fragment.app.FragmentActivity"]
...
}
enable
:是否启用插件功能,默认为 true。配置为 false 时,插件工程将失去 RePlugin Transform 功能(Transform 很耗时),这意味着工程打包出来的就只是普通的 apk,但同时也恢复了原有的编译速度,一般只在快速开发工程时配置为 false。记得在正式出包前配置为 true 或将其注释掉。classExcludes
:移除 class 文件配置【正则表达式】,默认为空(不移除任何 class)。配置后,只要 class 文件的全限定名 满足该配置列表中的任意一项正则表达式时,都不会被打包进插件 apk 文件中,从而减少插件 apk 体积。classIncludes
:保留 class 文件配置【正则表达式】,默认为空。该配置主要是为了与classExcludes
配合使用,当指定包路径下除了个别 class 文件外需要保留,而其余 class 文件需要移除时,可以在该配置列表中指定要保留的 class 文件全限定名。