Nếu bạn có nhiều phiên bản ứng dụng dựa trên nhiều biến thể bản dựng, hãy tạo quy tắc giữ lại tuỳ chỉnh cho từng biến thể. Ví dụ: nếu bạn có một cấp miễn phí và một cấp có tính phí của ứng dụng với các tính năng và phần phụ thuộc khác nhau, thì mỗi cấp phải có các quy tắc giữ lại riêng.
Tạo quy tắc giữ lại
Đối với AGP 9.3 trở lên:
Để duy trì các quy tắc giữ lại cụ thể cho nhiều phiên bản ứng dụng, hãy đặt các quy tắc giữ lại cho từng phiên bản trong nhóm tài nguyên quy tắc giữ lại có liên quan . Ví dụ: đối với flavor1, hãy viết các quy tắc giữ lại trong app/src/flavor1/keepRules/flavor1-rules.keep.
AGP 9.3 trở lên (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+ (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
}
}
}
Đối với các phiên bản AGP trước phiên bản 9.3:
Để tạo các quy tắc giữ lại dành riêng cho một biến thể bản dựng, hãy thêm thuộc tính proguardFiles trong khối flavor tương ứng trong productFlavors.
Hãy xem xét tập lệnh bản dựng sau đây để thêm tệp quy tắc flavor2‑rules.pro vào phiên bản sản phẩm flavor2:
DSL cũ (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")
}
}
}
DSL cũ (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'
}
}
}
Tài nguyên khác
- Tuỳ chỉnh tài nguyên cần giữ lại – Tìm hiểu cách thêm quy tắc giữ lại cho tài nguyên.