zl程序教程

您现在的位置是:首页 >  移动开发

当前栏目

【Android Gradle 插件】ProductFlavor 配置 ( ProductFlavor#resValue 方法 | ProductFlavor#dimension 维度属性 )

2023-09-14 09:07:28 时间

Android Plugin DSL Reference 参考文档 :





一、ProductFlavor#resValue 方法



ProductFlavor ( build.gradle#android#defaultConfig 配置 ) 文档 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.ProductFlavor.html


ProductFlavor#resValue 方法用于生成同一个 resource 资源 , 该操作等价于在 res/values 目录下的文件中配置一个特定类型的值 ;

在这里插入图片描述
如 : 在 build.gradle 的 " android # defaultConfig " 层级中设置如下内容 ,

android {
    defaultConfig {
        // 生成 res/values 目录下定义的资源
        resValue("string", "gradle_res_config", "Gradle Res Config")
    }
}

在编译时 , 会在 app\build\generated\res\resValues\debug\values 目录下生成 gradleResValues.xml 配置文件 , 内容为 :

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <!-- Automatically generated file. DO NOT MODIFY -->

    <!-- Value from default config. -->
    <string name="gradle_res_config" translatable="false">Gradle Res Config</string>

</resources>

在这里插入图片描述

编译之后 , 可以在 Android 代码中 , 使用 R.string.gradle_res_config 获取该生成的配置数据 ;

在 Android 的 Activity 代码中 , 可以直接通过 R 资源获取该数据内容 ;

在这里插入图片描述





二、ProductFlavor#dimension 维度属性



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


ProductFlavor#dimension 属性 是 维度属性 名称 ,

在这里插入图片描述

该属性需要配合 AppExtension#flavorDimensionList 属性 和 AppExtension#flavorDimensions 方法一起使用 ;

在这里插入图片描述

在这里插入图片描述

维度具体用法如下 : 这里以多渠道打包为例 ;

在 build.gradle 的 android 层级下调用 AppExtension#flavorDimensions 方法 定义维度 , 调用 productFlavors 创建产品风味 , 进行多渠道打包配置 ;

android {
    compileSdkVersion 30
    buildToolsVersion "30.0.3"

    defaultConfig {
        applicationId "com.example.classloader_demo"
        minSdkVersion 18
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"
    }

    // 创建 4 个维度
    flavorDimensions("tom", "jerry")

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

在 Build Variants 面板中 , 可以看到不同的打包配置 ;
在这里插入图片描述