الإصدار 8.1.0 من Android Gradle Plugin (تموز/يوليو 2023)

الإصدار 8.1.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android هو إصدار رئيسي يتضمّن مجموعة متنوعة من الميزات والتحسينات الجديدة.

التوافق

الحد الأدنى للإصدار الإصدار التلقائي Notes
مبرّد من نظام التشغيل Android من نظام التشغيل Android لمزيد من المعلومات، يمكنك الاطّلاع على تحديث Gradle.
أدوات إنشاء حِزم تطوير البرامج (SDK) 33.0.1 33.0.1 ثبِّت أو ضبط أدوات إصدار SDK.
العُقدة (NDK) لا ينطبق 25.1.8937393 ثبِّت أو اضبط نسخة مختلفة من NDK.
JDK 17 17 للاطلاع على مزيد من المعلومات، راجع إعداد إصدار JDK.

Kotlin DSL هو الخيار التلقائي لإعداد الإصدار.

تستخدم المشاريع الجديدة الآن Kotlin DSL (build.gradle.kts) تلقائيًا لإعداد الإنشاء. يوفّر هذا الإجراء تجربة تعديل أفضل مقارنةً بالتجربة DSL الرائعة (build.gradle) من خلال تمييز البنية وإكمال الرمز والتنقل إلى البيانات. إذا كنت تستخدم AGP 8.1 وKotlin DSL لإعداد الإصدار، عليك استخدام Gradle 8.1 للحصول على أفضل تجربة استخدام. لمزيد من المعلومات، اطّلِع على دليل نقل بيانات DSL إلى Kotlin.

إتاحة اللغات تلقائيًا حسب التطبيقات

بدءًا من Android Studio Giraffe Canary 7 وAGP 8.1.0-alpha07، يمكنك ضبط تطبيقك للتوافق مع الإعدادات المفضَّلة للغة حسب التطبيق تلقائيًا. استنادًا إلى موارد مشروعك، ينشئ المكوّن الإضافي لنظام Gradle المتوافق مع Android ملف LocaleConfig ويضيف مرجعًا إليه في ملف البيان النهائي، وبذلك لن تكون هناك حاجة إلى إجراء ذلك يدويًا. يستخدم AGP الموارد في مجلدات res لوحدات التطبيق وأي تبعيات لوحدة المكتبة لتحديد اللغات التي يجب تضمينها في ملف LocaleConfig.

يُرجى العِلم أنّ ميزة اللغة التلقائية المخصّصة حسب التطبيقات تتوافق مع التطبيقات التي تعمل بالإصدار 13 من نظام التشغيل Android 13 (المستوى 33 من واجهة برمجة التطبيقات) أو الإصدارات الأحدث. لاستخدام الميزة، يجب ضبط compileSdkVersion على 33 أو أعلى. لضبط إعدادات اللغة المخصّصة حسب التطبيقات للإصدارات السابقة من Android، لا تزال بحاجة إلى استخدام واجهات برمجة التطبيقات وأداة اختيار اللغة داخل التطبيقات.

لتفعيل التوافق التلقائي مع اللغات حسب التطبيقات، حدِّد لغة تلقائية:

  1. في مجلد res في وحدة التطبيق، أنشِئ ملفًا جديدًا باسم resources.properties.
  2. في ملف resources.properties، اضبط اللغة التلقائية باستخدام التصنيف unqualifiedResLocale. لصياغة أسماء اللغات، يمكنك دمج رمز اللغة مع النص البرمجي الاختياري ورموز المناطق، مع فصل كل منها بشرطة:

    • اللغة: استخدِم رمز ISO 639-1 المكوّن من حرفَين أو ثلاثة أحرف.
    • النص البرمجي (اختياري): استخدِم رمز ISO 15924.
    • المنطقة (اختيارية): استخدِم رمز ISO 3166-1-alpha-2 المكوَّن من حرفين أو رمز UN_M.49 المكوّن من ثلاثة أرقام.

    على سبيل المثال، إذا كانت اللغة التلقائية هي الإنجليزية الأمريكية:

        unqualifiedResLocale=en-US
        

يضيف AGP هذه اللغة التلقائية وأي لغات بديلة حددتها باستخدام أدلة values-* في المجلد res إلى ملف LocaleConfig الذي يتم إنشاؤه تلقائيًا.

يكون الدعم التلقائي للغات حسب التطبيقات غير مفعَّل تلقائيًا. لتفعيل هذه الميزة، استخدِم الإعداد generateLocaleConfig في المجموعة androidResources {} من ملف build.gradle.kts على مستوى الوحدة (ملف build.gradle إذا كنت تستخدم Groovy):

Kotlin

android {
  androidResources {
    generateLocaleConfig = true
  }
}

رائع

android {
  androidResources {
    generateLocaleConfig true
  }
}

يحتوي Android Lint على رمز بايت يستهدف JVM 17.

بدءًا من الإصدار AGP 8.1.0-alpha04، يحتوي Android Lint على رمز بايت يستهدف JVM 17. إذا كتبت عمليات تحقّق من الوبر المخصص، عليك التجميع باستخدام JDK 17 أو إصدار أحدث، وتحديد jvmTarget = '17' في خيارات برنامج التجميع في Kotlin.

لمزيد من المعلومات حول أداة lint، راجع تحسين التعليمات البرمجية باستخدام عمليات فحص الوبر.

تم نقل إعداد ضغط المكتبة الأصلية إلى DSL.

وبدءًا من الإصدار AGP 8.1.0-alpha10، ستحصل على تحذير في حال عدم ضبط ضغط المكتبة الأصلية باستخدام DSL بدلاً من البيان. وتوضّح الإرشادات التالية كيفية تعديل الإعدادات لاستخدام DSL. للحصول على المساعدة في إجراء هذه التحديثات، يمكنك استخدام مساعِد ترقية AGP (الأدوات > مساعد ترقية AGP).

لاستخدام المكتبات الأصلية غير المضغوطة، يجب إزالة السمة android::extractNativeLibs من البيان وإضافة الرمز التالي إلى ملف build.gradle.kts على مستوى الوحدة (ملف build.gradle إذا كنت تستخدم Groovy):

Kotlin

android {
  packagingOptions {
    jniLibs {
      useLegacyPackaging = false
    }
  }
}

رائع

android {
  packagingOptions {
    jniLibs {
      useLegacyPackaging false
    }
  }
}

علامات الإصدار التجريبي

هذه هي علامات تجريبية متاحة لتكوين إصدارك في الإصدار 8.1 من AGP.

إبلاغ تمت الإضافة في قيمة تلقائية Notes
android.experimental.useDefaultDebugSigningConfigForProfileableBuildtypes 8.0 جنيه مصري false عند تفعيل هذا الخيار بدون تحديد أي إعدادات توقيع، يستخدم AGP الإعدادات التلقائية لتوقيع تصحيح الأخطاء عند تشغيل إصدار قابل للتحليل أو تصحيح الأخطاء. يتم إيقاف هذه العلامة تلقائيًا لتشجيع مؤلفي الإصدار على الإفصاح عن إعدادات توقيع ملفات شخصية محددة.
android.experimental.library.desugarAndroidTest 8.0 جنيه مصري false تتيح هذه العلامة لأدوات إنشاء المكتبات تفعيل أداة إزالة المحتوى في المكتبة الأساسية لحِزم APK التجريبية بدون التأثير في ميزة "الاقتراحات المطبّقة تلقائيًا" التي يتم إنشاؤها، مثلاً من خلال عملية التوليف. ونخطط لإتاحة هذا السلوك في Variable API في النهاية.
android.experimental.testOptions.managedDevices.customDevice 8.0 جنيه مصري false في حال تفعيل السياسة، تتيح "أجهزة Gradle المُدارة" استخدام نوع جهاز مخصّص من تحديد المستخدم يمكن توفيره من خلال المكوّنات الإضافية. يجب تفعيل هذه العلامة إذا كنت تريد استخدام المكوّن الإضافي Firebase Test Lab.
android.lint.printStackTrace 8.0 جنيه مصري false في حال تفعيل أداة Android Lint، تطبع أداة تتبُّع تسلسل استدعاء الدوال البرمجية في حال تعطُّلها. وتملك هذه العلامة الإمكانات نفسها التي يتضمّنها متغير بيئة LINT_PRINT_STACKTRACE.
android.experimental.testOptions.managedDevices.maxConcurrentDevices 8.0 جنيه مصري بدون تحديد نمط تُحدِّد هذه السياسة الحد الأقصى لعدد أجهزة Gradle المُدارة والمتزامنة، التي سيتم تفعيلها في أي وقت. إذا كانت القيمة 0 أو سالبة، لن يكون هناك حد أقصى لعدد الأجهزة.
android.experimental.testOptions.installApkTimeout 8.0 جنيه مصري بدون تحديد نمط مدة المهلة بالثواني لتثبيت حزمة APK. إذا كانت القيمة 0 أو سالبة، سيتم ضبطها على قيمة تلقائية من خلال بروتوكول UTP.