Android Gradle 插件ProductFlavor 配置 ( AppExtension#variantFilter 过滤变体属性 )
Posted 韩曙亮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Gradle 插件ProductFlavor 配置 ( AppExtension#variantFilter 过滤变体属性 )相关的知识,希望对你有一定的参考价值。
文章目录
Android Plugin DSL Reference 参考文档 :
-
AppExtension ( build.gradle#android 配置 ) 文档位置 : android-gradle-dsl-gh-pages/2.3/com.android.build.gradle.AppExtension.html
-
build.gradle#android 模块配置文档 : android-gradle-dsl/2.3/com.android.build.gradle.AppExtension.html
-
ProductFlavor ( build.gradle#android#defaultConfig 配置 ) 文档 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.ProductFlavor.html
-
ProductFlavor#externalNativeBuild 配置 ( build.gradle#android#defaultConfig#externalNativeBuild 配置 ) : com.android.build.gradle.internal.dsl.ProductFlavor:externalNativeBuild
-
ExternalNativeBuildOptions ( build.gradle#android#defaultConfig#externalNativeBuild 配置 ) 文档位置 : android-gradle-dsl-gh-pages/2.3/com.android.build.gradle.internal.dsl.ExternalNativeBuildOptions.html
-
NdkBuildOptions ( build.gradle#android#defaultConfig#externalNativeBuild#ndkBuild 配置 ) 文档位置 : android-gradle-dsl-gh-pages/2.3/com.android.build.gradle.internal.dsl.NdkBuildOptions.html
-
CmakeOptions ( build.gradle#android#defaultConfig#externalNativeBuild#cmake 配置 ) 文档位置 : android-gradle-dsl-gh-pages/2.3/com.android.build.gradle.internal.dsl.CmakeOptions.html
-
JackOptions ( build.gradle#android#defaultConfig#jackOptions 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.JackOptions.html
-
AnnotationProcessorOptions ( 注解处理器配置 ) ( build.gradle#android#defaultConfig#javaCompileOptions配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.AnnotationProcessorOptions.html
-
NdkOptions ( build.gradle#android#defaultConfig#ndk 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.NdkOptions.html
-
VectorDrawablesOptions ( build.gradle#android#defaultConfig#vectorDrawables 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.VectorDrawablesOptions.html
-
NDK 参考文档 : Add C and C++ Code to Your Project.
一、AppExtension#variantFilter 过滤变体属性
ProductFlavor ( build.gradle#android#defaultConfig 配置 ) 文档 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.ProductFlavor.html
build.gradle#android 模块配置文档 : android-gradle-dsl/2.3/com.android.build.gradle.AppExtension.html
AppExtension#variantFilter
属性的作用是 , 控制哪些变体需要被编译 ;
属性原型 :
Action<VariantFilter> variantFilter
文档链接 : AppExtension#variantFilter
在上一篇博客 【Android Gradle 插件】ProductFlavor 配置 ( ProductFlavor#resValue 方法 | ProductFlavor#dimension 维度属性 ) 中 , 分析了 ProductFlavor#dimension
维度属性 以及 AppExtension#flavorDimensionList
属性 和 AppExtension#flavorDimensions
方法 ;
创建了 2 2 2 个维度
// 创建 2 个维度
flavorDimensions("tom", "jerry")
以及 4 4 4 个风味
// 创建产品风味 , 打渠道包就是在这里实现
productFlavors
alpha
// 此处可以指定 defaultConfig 配置
// 如果不指定 , 则默认使用 defaultConfig 默认配置
// 此处设置属性 , 可以覆盖 defaultConfig 配置
dimension "tom"
beta
dimension "tom"
delta
dimension "jerry"
pro
dimension "jerry"
在 Build Variants 面板中 , 可以看到不同的打包配置 ;
AppExtension#variantFilter
过滤变体属性用法如下 :
在 build.gradle 的 " android " 层级下配置如下属性 , 遍历了一遍所有的 变体 , 将包含 " alpha " 的变体都忽略 ;
// 设置过滤 带 alpha 的变体
variantFilter
variant ->
variant.flavors.each
if(it.name.contains("alpha"))
setIgnore(true)
此时 , 在 " Build Variants " 面板中 , 已经过滤了 带 " alpha " 的变体 ;
配置了 productFlavors
, 在创建 资源文件时 , 可以选择不同的 源集 :
以上是关于Android Gradle 插件ProductFlavor 配置 ( AppExtension#variantFilter 过滤变体属性 )的主要内容,如果未能解决你的问题,请参考以下文章
Android Gradle 插件Gradle 自定义 Plugin 插件 ③ ( 自定义插件作用 | Android Gradle 插件的扩展 | 自定义 Extension 扩展 )
Android Gradle 插件Gradle 自定义 Plugin 插件 ⑥ ( 在 buildSrc 模块中依赖 Android Gradle 插件 | 完整代码示例 )
Android Gradle 插件Gradle 自定义 Plugin 插件 ⑥ ( 在 buildSrc 模块中依赖 Android Gradle 插件 | 完整代码示例 )
Android Gradle 插件Gradle 自定义 Plugin 插件 ② ( buildSrc 目录中实现 Gradle 插件 | 实现 Gradle 插件代码 | 模块引入插件并编译 )
Android Gradle 插件Android Module 模块 build.gradle 构建脚本 Groovy 语法分析 ① ( Gradle 二进制插件引入 | Gradle依赖配置 )
Android Gradle 插件Android Module 模块 build.gradle 构建脚本 Groovy 语法分析 ① ( Gradle 二进制插件引入 | Gradle依赖配置 )