前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Android Gradle 插件】ProductFlavor 配置 ( AppExtension#variantFilter 过滤变体属性 )

【Android Gradle 插件】ProductFlavor 配置 ( AppExtension#variantFilter 过滤变体属性 )

作者头像
韩曙亮
发布2023-03-30 15:09:46
5230
发布2023-03-30 15:09:46
举报
文章被收录于专栏:韩曙亮的移动开发专栏

文章目录

Android Plugin DSL Reference 参考文档 :

一、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 属性的作用是 , 控制哪些变体需要被编译 ;

属性原型 :

代码语言:javascript
复制
Action<VariantFilter> variantFilter

文档链接 : AppExtension#variantFilter

在上一篇博客 【Android Gradle 插件】ProductFlavor 配置 ( ProductFlavor#resValue 方法 | ProductFlavor#dimension 维度属性 ) 中 , 分析了 ProductFlavor#dimension 维度属性 以及 AppExtension#flavorDimensionList 属性 和 AppExtension#flavorDimensions 方法 ;

创建了

2

个维度

代码语言:javascript
复制
    // 创建 2 个维度
    flavorDimensions("tom", "jerry")

以及

4

个风味

代码语言:javascript
复制
    // 创建产品风味 , 打渠道包就是在这里实现
    productFlavors {
        alpha{
            // 此处可以指定 defaultConfig 配置
            // 如果不指定 , 则默认使用 defaultConfig 默认配置
            // 此处设置属性 , 可以覆盖 defaultConfig 配置
            dimension "tom"
        }
        beta{
            dimension "tom"
        }
        delta{
            dimension "jerry"
        }
        pro{
            dimension "jerry"
        }
    }

在 Build Variants 面板中 , 可以看到不同的打包配置 ;

AppExtension#variantFilter 过滤变体属性用法如下 :

在 build.gradle 的 " android " 层级下配置如下属性 , 遍历了一遍所有的 变体 , 将包含 " alpha " 的变体都忽略 ;

代码语言:javascript
复制
    // 设置过滤 带 alpha 的变体
    variantFilter {
        variant ->
            variant.flavors.each {
                if(it.name.contains("alpha")) {
                    setIgnore(true)
                }
            }
    }

此时 , 在 " Build Variants " 面板中 , 已经过滤了 带 " alpha " 的变体 ;

配置了 productFlavors , 在创建 资源文件时 , 可以选择不同的 源集 :

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-05-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、AppExtension#variantFilter 过滤变体属性
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档