إذا كانت لديك إصدارات مختلفة من تطبيقك استنادًا إلى خيارات إنشاء مختلفة، يمكنك إنشاء قواعد مخصّصة للاحتفاظ بالبيانات لكل خيار من خيارات الإنشاء. على سبيل المثال، إذا كان لديك مستوى مجاني ومستوى مدفوع من تطبيقك يتضمّنان ميزات وتبعيات مختلفة، يجب أن يكون لكل مستوى قواعد احتفاظ بالبيانات خاصة به.
إنشاء قواعد الاحتفاظ بالبيانات
بالنسبة إلى الإصدار 9.3 من "المكوّن الإضافي لنظام Gradle المتوافق مع Android" والإصدارات الأحدث:
للاحتفاظ بقواعد الاحتفاظ بالبيانات محدّدة لصيغ مختلفة من تطبيقك، ضَع قواعد الاحتفاظ بالبيانات لكل صيغة في مجموعة رموز المصدر ذات الصلة بقواعد الاحتفاظ بالبيانات . على سبيل المثال،
بالنسبة إلى flavor1، يمكنك كتابة قواعد الاحتفاظ بالبيانات في
app/src/flavor1/keepRules/flavor1-rules.keep.
الإصدار 9.3 من "المكوّن الإضافي لنظام Gradle المتوافق مع Android" والإصدارات الأحدث (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
}
}
}
الإصدار 9.3 من "المكوّن الإضافي لنظام Gradle المتوافق مع Android" والإصدارات الأحدث (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
}
}
}
بالنسبة إلى إصدارات "المكوّن الإضافي لنظام Gradle المتوافق مع Android" الأقدم من 9.3:
لإنشاء قواعد احتفاظ بالبيانات خاصة بتنويعة التصميم، يمكنك إضافة السمة proguardFiles في كتلة الصيغة المقابلة ضمن productFlavors.
في ما يلي مثال على نص برمجي للإنشاء يضيف ملف القواعد
flavor2‑rules.pro إلى flavor2 صيغة المنتج:
لغة 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")
}
}
}
لغة 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'
}
}
}
مراجع إضافية
- تخصيص الموارد التي يجب الاحتفاظ بها: كيفية إضافة قواعد الاحتفاظ بالبيانات للموارد