Помогите пожалуйста разобраться с Flavor Dimensions.
Если я правильно понял, то данная фича позволяет готовить разные версии одного приложения.
В документации есть такое:flavorDimensions "version"
productFlavors {
demo {
// Assigns this product flavor to the "version" flavor dimension.
// This property is optional if you are using only one dimension.
dimension "version"
applicationIdSuffix ".demo"
versionNameSuffix "-demo"
}
full {
dimension "version"
applicationIdSuffix ".full"
versionNameSuffix "-full"
}
}
То есть в секции productFlavors есть две версии приложения(demo и full) - это вроде понятно. Я не могу понять чем является и для чего
flavorDimensions "version"
.
Вот другой пример с более богатой flavorDimensions из этой же документации:
flavorDimensions "api", "mode"
productFlavors {
demo {
// Assigns this product flavor to the "mode" flavor dimension.
dimension "mode"
...
}
full {
dimension "mode"
...
}
// Configurations in the "api" product flavors override those in "mode"
// flavors and the defaultConfig block. Gradle determines the priority
// between flavor dimensions based on the order in which they appear next
// to the flavorDimensions property above--the first dimension has a higher
// priority than the second, and so on.
minApi24 {
dimension "api"
minSdkVersion 24
// To ensure the target device receives the version of the app with
// the highest compatible API level, assign version codes in increasing
// value with API level. To learn more about assigning version codes to
// support app updates and uploading to Google Play, read Multiple APK Support
versionCode 30000 + android.defaultConfig.versionCode
versionNameSuffix "-minApi24"
...
}
minApi23 {
dimension "api"
minSdkVersion 23
versionCode 20000 + android.defaultConfig.versionCode
versionNameSuffix "-minApi23"
...
}
minApi21 {
dimension "api"
minSdkVersion 21
versionCode 10000 + android.defaultConfig.versionCode
versionNameSuffix "-minApi21"
...
}
}
То есть это какая-то группировка версий приложений, но я не могу понять смысл, поэтому собственно прошу о помощи.
Ну и
с Хабра:
"Предположим, вам необходимо создать платное и бесплатное приложение. При этом ваше приложение выпускается для телевизоров, планшетов и телефонов. Более того, ваше приложение публикуется в разных маркетах."
android {
flavorDimensions "device", "paid", "market"
productFlavors {
tv {
dimension 'device'
}
tablet {
dimension 'device'
}
phone {
dimension 'device'
}
free {
dimension 'paid'
}
premium {
dimension 'paid'
}
google {
dimension 'market'
}
amazon {
dimension 'market'
}
}
}
"Объявив 7 flavor-ов в трех разных группах вы получили целых 12 различных вариантов приложения."
Каким образом получилось 12?
В общем ничего не понятно. Заранее спасибо всем, кто поможет разобраться