Gradle三:创建构建Variant
什么是Variant?
每个android项目都有debug和release构建类型,而product flavor让管理多个应用或依赖库版本成为可能,而构建类型常常和product flavor一起使用,可以很容易地处理测试和生产应用的免费和付费版本,构建类型和product flavor的结合结果称之为variant。
构建新类型
创建一个新的构建类型staging如下代码:
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile(proguard-android-optimize.txt), proguard-rules.pro
}
staging {
applicationIdSuffix ".staging"
versionNameSuffix "-staging"
buildConfigField "String", "API_URL",
""http://www.baidus.com""
buildConfigField "boolean", "LOG_HTTP_CALLS", "true"
}
}
通过staging签名打包会在工程目录app中生成一个staging文件夹,用于存放打包后的apk,这样我们就可以在同一台设备上同时装有release版本和staging版本打包的apk,而不发生任何冲突。
使用initWidth()方法,可以在构建新类型时,复用已经存在类型的属性来初始化该构建类型,我们可以在新的类型中定义额外的属性
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile(proguard-android-optimize.txt), proguard-rules.pro
}
staging.initWith(buildTypes.release)
staging {
applicationIdSuffix ".staging"
versionNameSuffix "-staging"
}
}
另外,如果每个构建类型引用的库不一样,也可以分别配置
dependencies {
implementation androidx.appcompat:appcompat:1.2.0
//新构建的类型
stagingImplementation androidx.test.ext:junit:1.1.2
}
product flavor
product flavor被用来创建不同的版本,例如,一个机构为多个客户端构建相同功能而品牌不同的应用。 创建product flavor:
productFlavors{
red{
applicationId com.joyce.project.myapplication.red
versionCode 3
}
blue{
applicationId com.joyce.project.myapplication111.blue
versionCode 4
}
}
在构建apk文件的时候,我们则可以有多个不同的选项
