Android配置变体
Posted 無昂博奥
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android配置变体相关的知识,希望对你有一定的参考价值。
概念
通过配置build变体实现单个项目构建出不同的应用版本。例如我们针对不同的应用商店会出不同的应用版本,此时最合适的办法就是通过build变体来实现。也是google推荐的做法。
配置build类型
在我们创建项目的时候,android Studio已经帮我创建了两中build类型,分别是debug和release。代码如下:
buildTypes
debug
isDefault = true
// signingConfig signingConfigs.debug
// versionNameSuffix "-$releaseTime()"
release
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
我们可以通过在debug和release中使用signingConfig
来使用相同的签名。这样有时候会显得非常方便。
变种维度
变种维度,即一个产品变种组,必选将所有变种分配给某个变种维度;否则在构建的时候会出现以下异常
Error:All flavors must now belong to a named flavor dimension.
The flavor 'flavor_name' is not assigned to a flavor dimension.
产品变种
配置变种和配置build类型类似,只需要按照如下方式将其配置到gradle中的productFlavors代码块中,在每个变种中可以设置不同的applicationId
也就是应用的包名,也可以重新给defaultConfig中的属性赋值,
flavorDimensions ”activate“
productFlavors
free
dimension "activate"
//会在应用的包名后面追加.free
applicationIdSuffix ".free"
versionNameSuffix "-free"
buildConfigField 'boolean', 'IS_FREE_TRIAL', 'true'
pro
dimension "activate"
//会在应用的包名后面追加.pro
applicationIdSuffix ".pro"
buildConfigField 'boolean', 'IS_FREE_TRIAL', 'false'
以上定义了一个activate
的产品维度,并定义了一个免费版和专业版的产品变种。当创建好之后,点击Android Studio Sync Now就可以在Build > Select Build Variant中看到项目出现以下变体:
- freeDebug
- freeRelease
- proDebug
- proRelease
从变体的名称中我们可以看到变体的命名格式为<product-flavors><Build-type>
。
以上是关于Android配置变体的主要内容,如果未能解决你的问题,请参考以下文章
Android Gradle 插件主工程依赖指定 Library 的特定变体 ( LibraryExtension#publishNonDefault 配置 | 依赖指定 Library 变体 )
Android Gradle 插件ProductFlavor 配置 ( AppExtension#variantFilter 过滤变体属性 )