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

Posted 韩曙亮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Gradle 插件ProductFlavor 配置 ( ProductFlavor#resValue 方法 | ProductFlavor#dimension 维度属性 )相关的知识,希望对你有一定的参考价值。

文章目录

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 面板中 , 可以看到不同的打包配置 ;

以上是关于Android Gradle 插件ProductFlavor 配置 ( ProductFlavor#resValue 方法 | ProductFlavor#dimension 维度属性 )的主要内容,如果未能解决你的问题,请参考以下文章

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依赖配置 )