Jeśli masz różne wersje aplikacji oparte na różnych wariantach kompilacji, utwórz niestandardowe reguły zachowywania dla każdego wariantu. Jeśli na przykład masz bezpłatny i płatny poziom aplikacji z różnymi funkcjami i zależnościami, każdy poziom powinien mieć własne reguły zachowywania.
Tworzenie reguł zachowywania
W przypadku AGP 9.3 lub nowszego:
Aby zachować określone reguły zachowywania dla różnych wersji aplikacji, umieść reguły zachowywania dla każdej wersji w odpowiednim zbiorze źródeł reguł zachowywania . Na przykład,
w przypadku flavor1, napisz reguły zachowywania w
app/src/flavor1/keepRules/flavor1-rules.keep.
AGP 9.3 lub nowszy (Kotlin)
android {
buildTypes {
release {
optimization {
enable = true // Enables code and resource optimizations.
}
}
}
flavorDimensions.add("version")
productFlavors {
create("flavor1") {
...
// Place your keep rules in app/src/flavor1/keepRules/ with the file suffix .keep
}
create("flavor2") {
...
// Place your keep rules in app/src/flavor2/keepRules/ with the file suffix .keep
}
}
}
AGP 9.3 lub nowszy (Groovy)
android {
buildTypes {
release {
optimization {
enable = true // Enables code and resource optimizations.
}
}
}
flavorDimensions "version"
productFlavors {
flavor1 {
...
}
flavor2 {
...
// Place your keep rules in app/src/flavor2/keepRules/ with the file suffix .keep
}
}
}
W przypadku wersji AGP starszych niż 9.3:
Aby utworzyć reguły zachowywania, które są specyficzne dla wariantu kompilacji, dodaj właściwość proguardFiles w odpowiednim bloku flavor w sekcji productFlavors.
Oto skrypt kompilacji, który dodaje plik reguł
flavor2‑rules.pro do wariantu usługi flavor2:
Starsza wersja DSL (Kotlin)
android {
...
buildTypes {
getByName("release") {
isMinifyEnabled = true
isShrinkResources = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}
flavorDimensions.add("version")
productFlavors {
create("flavor1") {
...
}
create("flavor2") {
proguardFile("flavor2-rules.pro")
}
}
}
Starsza wersja DSL (Groovy)
android {
...
buildTypes {
release {
minifyEnabled = true
shrinkResources = true
proguardFiles(
getDefaultProguardFile('proguard-android-optimize.txt'),
'proguard-rules.pro'
)
}
}
flavorDimensions "version"
productFlavors {
flavor1 {
...
}
flavor2 {
proguardFile 'flavor2-rules.pro'
}
}
}
Dodatkowe materiały
- Dostosowywanie zasobów do zachowania – dowiedz się, jak dodawać reguły zachowywania zasobów.