【Android Gradle 插件】ProductFlavor 配置 ( ProductFlavor#resValue 方法 | ProductFlavor#dimension 维度属性 )
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.
一、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 Pro] linux下查看一个文件的属性(ls,lsattr,file,stat)
- android属性动画
- Android自定义属性,format详解
- Android----drawable state各个属性详解----ListView几个比较特别的属性:
- android 属性动画
- Android修行手册 - ConstraintLayout全属性
- Android修行手册 - CardView属性介绍
- Android 实现Java更改ImageView的src属性
- 【Android笔记18】Android中的Intent对象介绍及常见属性的使用
- Android 9.0 app全屏通过系统属性控制手势上滑是否显示虚拟导航栏和状态栏
- Android 10.0 系统settings系统属性控制一级菜单显示隐藏
- 【Android Gradle 插件】LintOptions 配置 ⑦ ( explainIssues 属性配置 | htmlOutput 属性配置 | htmlReport 属性配置 )
- 【Android Gradle 插件】DexOptions 配置 ⑧ ( preDexLibraries 属性配置 | threadCount 属性配置 )
- 【Android Gradle 插件】DexOptions 配置 ⑥ ( javaMaxHeapSize 属性配置 | jumboMode 属性配置 )
- 【Android Gradle 插件】DexOptions 配置 ① ( BaseExtension#dexOptions 脚配块配置 | DexOptions 属性配置简介 )
- 【Android Gradle 插件】DataBindingOptions 配置 ( BaseExtension#dataBinding 脚配块配置 | DataBindingOptions 属性)
- 【Android 逆向】Android 权限 ( adb 降权相关的属性 | ro.secure 属性 | ro.debuggable 属性 | service.adb.root 属性 )
- android 自定义控件 使用declare-styleable进行配置属性(源码角度)
- android ImageView的scaleType属性
- Android中visibility属性VISIBLE、INVISIBLE、GONE的区别
- Android Sensor Framework(狠详)