الإصدار 3.3.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android (يناير 2019)

يتطلّب هذا الإصدار ما يلي:

الإصدار الأدنى الإصدار التلقائي الملاحظات
Gradle 4.10.1 4.10.1 لمزيد من المعلومات، اطّلِع على تحديث Gradle. عند استخدام Gradle 5.0 والإصدارات الأحدث، ينخفض حجم الذاكرة المخصّصة لبرنامج Gradle الخفي التلقائي من 1 غيغابايت إلى 512 ميغابايت. قد يؤدي ذلك إلى تراجع في أداء الإصدار. لإلغاء هذا الإعداد التلقائي، حدِّد حجم الذاكرة المخصّصة لبرنامج Gradle الخفي في ملف gradle.properties الخاص بمشروعك.
أدوات تصميم حزمة تطوير البرامج (SDK) ‫28.0.3 ‫28.0.3 تثبيت أو ضبط أدوات إنشاء حزمة تطوير البرامج (SDK).

‫3.3.3 (تموز/يوليو 2020)

يتيح هذا التحديث الطفيف التوافق مع الإعدادات التلقائية والميزات الجديدة لإمكانية الوصول إلى الحِزم في Android 11.

يُرجى الاطّلاع على ملاحظات الإصدار 4.0.1 للحصول على التفاصيل.

‫3.3.2 (مارس 2019)

يتوافق هذا التحديث الطفيف مع الإصدار 3.3.2 من "استوديو Android" ويتضمّن إصلاحات متنوعة للأخطاء وتحسينات في الأداء. للاطّلاع على قائمة بإصلاحات الأخطاء الجديرة بالملاحظة، يُرجى قراءة المشاركة ذات الصلة في مدونة "ملاحظات الإصدار".

3.3.1 (فبراير 2019)

يتوافق هذا التحديث الطفيف مع الإصدار 3.3.1 من Android Studio ويتضمّن إصلاحات متنوعة للأخطاء وتحسينات في الأداء.

الميزات الجديدة

  • تحسين مزامنة مسار الفئة: عند تحديد التبعيات في مسارات الفئات في وقت التشغيل ووقت التجميع، تحاول إضافة Android Gradle إصلاح بعض تعارضات الإصدارات اللاحقة للتبعيات التي تظهر في مسارات فئات متعددة.

    على سبيل المثال، إذا كان مسار فئة وقت التشغيل يتضمّن الإصدار 2.0 من المكتبة A، وكان مسار فئة وقت الترجمة يتضمّن الإصدار 1.0 من المكتبة A، سيعدّل المكوّن الإضافي تلقائيًا التبعية في مسار فئة وقت الترجمة إلى الإصدار 2.0 من المكتبة A لتجنُّب حدوث أخطاء.

    ومع ذلك، إذا كان مسار فئة وقت التشغيل يتضمّن الإصدار 1.0 من المكتبة A، وكان مسار فئة وقت الترجمة يتضمّن الإصدار 2.0 من المكتبة A، لن يخفّض المكوّن الإضافي مستوى الاعتمادية في مسار فئة وقت الترجمة إلى الإصدار 1.0 من المكتبة A، وسيظهر لك خطأ. لمزيد من المعلومات، راجِع مقالة حلّ التعارضات بين مسارات الفئات.

  • تحسين عملية تجميع Java بشكل تدريجي عند استخدام معالِجات التعليقات التوضيحية: يقلّل هذا التحديث من وقت الإنشاء من خلال تحسين إمكانية تجميع Java بشكل تدريجي عند استخدام معالِجات التعليقات التوضيحية.

    ملاحظة: تتوافق هذه الميزة مع الإصدار 4.10.1 من Gradle والإصدارات الأحدث، باستثناء الإصدار 5.1 من Gradle بسبب المشكلة 8194 في Gradle.

    • بالنسبة إلى المشاريع التي تستخدم Kapt (معظم المشاريع التي تستخدم Kotlin فقط والمشاريع المختلطة التي تستخدم Kotlin وJava): يتم تفعيل عملية تجميع Java التزايدي، حتى عند استخدام ربط البيانات أو المكوّن الإضافي retro-lambda. لا يمكن بعد إجراء معالجة تعليقات توضيحية بشكل تدريجي من خلال مهمة Kapt.

    • بالنسبة إلى المشاريع التي لا تستخدم Kapt (المشاريع التي تستخدم Java فقط): إذا كانت جميع معالجات التعليقات التوضيحية التي تستخدمها تتوافق مع المعالجة التزايدية للتعليقات التوضيحية، سيتم تفعيل تجميع Java التزايدي تلقائيًا. لمراقبة معدّل استخدام معالج التعليقات التوضيحية التزايدي، راجِع المشكلة 5277 في Gradle.

      ومع ذلك، إذا كان معالج واحد أو أكثر من معالجات التعليقات التوضيحية لا يتيح إنشاء إصدارات متزايدة، لن يتم تفعيل تجميع Java المتزايد. بدلاً من ذلك، يمكنك تضمين العلامة التالية في ملف gradle.properties:

      android.enableSeparateAnnotationProcessing=true
                  

      عند تضمين هذا العلامة، ينفّذ المكوّن الإضافي لنظام Gradle المتوافق مع Android معالجات التعليقات التوضيحية في مهمة منفصلة ويسمح بتنفيذ مهمة تجميع Java بشكل تدريجي.

  • معلومات أفضل لتصحيح الأخطاء عند استخدام واجهة برمجة تطبيقات قديمة: عندما يرصد المكوّن الإضافي أنّك تستخدم واجهة برمجة تطبيقات لم يعُد متاحًا، يمكنه الآن تقديم معلومات أكثر تفصيلاً لمساعدتك في تحديد مكان استخدام واجهة برمجة التطبيقات هذه. للاطّلاع على المعلومات الإضافية، عليك تضمين ما يلي في ملف gradle.properties الخاص بمشروعك:

              android.debug.obsoleteApi=true
            

    يمكنك أيضًا تفعيل العلامة من خلال تمرير -Pandroid.debug.obsoleteApi=true من سطر الأوامر.

  • يمكنك إجراء اختبارات أدوات القياس على وحدات الميزات من سطر الأوامر.

تغييرات السلوك

  • إعداد المهام عند الطلب: يستخدم المكوّن الإضافي الآن واجهة برمجة التطبيقات الجديدة لإنشاء المهام في Gradle لتجنُّب تهيئة المهام وإعدادها إذا لم تكن مطلوبة لإكمال عملية الإنشاء الحالية (أو المهام غير المدرَجة في الرسم البياني لمهام التنفيذ). على سبيل المثال، إذا كان لديك عدة صيغ للإنشاء، مثل صيغ الإنشاء "الإصدار" و"تصحيح الأخطاء"، وكنت بصدد إنشاء إصدار "تصحيح الأخطاء" من تطبيقك، تتجنّب الإضافة تهيئة المهام وضبطها لإصدار "الإصدار" من تطبيقك.

    قد يؤدي استدعاء بعض الطرق القديمة في واجهة برمجة التطبيقات Variants API، مثل variant.getJavaCompile()، إلى فرض إعدادات المهام. للتأكّد من أنّ الإصدار محسّن لإعداد المهام المؤجَّل، استخدِم طرقًا جديدة تعرض بدلاً من ذلك عنصر TaskProvider، مثل variant.getJavaCompileProvider().

    إذا كنت تنفّذ مهام تصميم مخصّصة، تعرَّف على كيفية التكيّف مع واجهة برمجة التطبيقات الجديدة لإنشاء المهام في Gradle.

  • بالنسبة إلى نوع إصدار معيّن، عند ضبط useProguard false، تستخدم الإضافة الآن R8 بدلاً من ProGuard لتقليل حجم الرموز والموارد وإخفائها في تطبيقك. لمزيد من المعلومات حول R8، يمكنك الاطّلاع على مشاركة المدونة هذه من مدوّنة مطوّري تطبيقات Android.

  • إنشاء أسرع لفئة R لمشاريع المكتبات: في السابق، كان المكوّن الإضافي لنظام Gradle المتوافق مع Android ينشئ ملف R.java لكل التبعيات في مشروعك، ثم يجمّع فئات R هذه مع فئات تطبيقك الأخرى. تنشئ الإضافة الآن ملف JAR يحتوي على فئة R المجمَّعة لتطبيقك مباشرةً، بدون إنشاء فئات R.java وسيطة أولاً. قد يؤدي هذا التحسين إلى تحسين أداء عملية الإنشاء بشكل كبير للمشاريع التي تتضمّن العديد من المشاريع الفرعية والمكتبات والتبعيات، كما يؤدي إلى تحسين سرعة الفهرسة في "استوديو Android".

  • عند إنشاء حِزمة تطبيق Android، تتضمّن حِزم APK التي يتم إنشاؤها من حِزمة التطبيق هذه والتي تستهدف الإصدار 6.0 من نظام التشغيل Android (المستوى 23 من واجهة برمجة التطبيقات) أو الإصدارات الأحدث تلقائيًا إصدارات غير مضغوطة من المكتبات المجمّعة من رموز برمجية أصلية. يؤدي هذا التحسين إلى تجنُّب حاجة الجهاز إلى إنشاء نسخة من المكتبة، وبالتالي تقليل حجم تطبيقك على القرص. وإذا كنت تفضّل إيقاف هذا التحسين، أضِف ما يلي إلى ملف gradle.properties:

    android.bundle.enableUncompressedNativeLibs = false
            
  • تفرض الإضافة الحد الأدنى من إصدارات بعض الإضافات التابعة لجهات خارجية.

  • مزامنة المشروع ذي الصيغة الواحدة: مزامنة مشروعك مع إعدادات الإصدار هي خطوة مهمة تتيح لـ "استوديو Android" فهم كيفية تنظيم مشروعك. ومع ذلك، يمكن أن تستغرق هذه العملية وقتًا طويلاً في المشاريع الكبيرة. إذا كان مشروعك يستخدم عدة خيارات إنشاء، يمكنك الآن تحسين عمليات المزامنة في المشروع من خلال حصرها على خيار الإنشاء الذي اخترته حاليًا فقط.

    يجب استخدام الإصدار 3.3 أو إصدار أحدث من "استوديو Android" مع الإصدار 3.3.0 أو إصدار أحدث من "إضافة Android Gradle" لتفعيل هذا التحسين. عند استيفاء هذه المتطلبات، سيطلب منك بيئة التطوير المتكاملة تفعيل هذا التحسين عند مزامنة مشروعك. ويتم أيضًا تفعيل التحسين تلقائيًا في المشاريع الجديدة.

    لتفعيل هذا التحسين يدويًا، انقر على ملف (File) > الإعدادات (Settings) > تجريبي (Experimental) > Gradle (استوديو Android > الإعدادات المفضّلة (Preferences) > تجريبي (Experimental) > Gradle على جهاز Mac) وضَع علامة في مربّع الاختيار مزامنة الإصدار النشط فقط (Only sync the active variant).

    ملاحظة: تتوافق عملية التحسين هذه تمامًا مع المشاريع التي تتضمّن لغتَي Java وC++‎، وتتوافق جزئيًا مع Kotlin. عند تفعيل التحسين للمشاريع التي تتضمّن محتوى Kotlin، يعود خيار المزامنة في Gradle إلى استخدام صيغ كاملة داخليًا.

  • التنزيل التلقائي لحِزم SDK غير المتوفّرة: تم توسيع نطاق هذه الوظيفة لتشمل NDK. لمزيد من المعلومات، يمكنك الاطّلاع على مقالة التنزيل التلقائي للحِزم الناقصة باستخدام Gradle.

تم إصلاح الأخطاء

  • يعمل الإصدار 3.3.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android على إصلاح المشاكل التالية:

    • عملية الإنشاء التي تستدعي android.support.v8.renderscript.RenderScript بدلاً من إصدار AndroidX، على الرغم من تفعيل Jetifier
    • تعارضات بسبب تضمين androidx-rs.jar في حزمة ثابتة annotation.AnyRes
    • عند استخدام RenderScript، لن تحتاج بعد الآن إلى ضبط إصدار "أدوات الإنشاء" يدويًا في ملفات build.gradle