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

يتطلّب هذا الإصدار من المكوّن الإضافي المتوافق مع Android ما يلي:

الإصدار الأدنى الإصدار التلقائي ملاحظات
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)

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

الإصدار 3.3.1 (فبراير 2019)

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

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

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

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

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

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

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

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

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

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

      android.enableSeparateAnnotationProcessing=true
                  

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

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

              android.debug.obsoleteApi=true
            

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

  • يمكنك تشغيل اختبارات الأدوات على وحدات الميزات من سطر الأوامر.

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

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

    قد يؤدي استدعاء بعض الطرق القديمة في واجهة برمجة التطبيقات Variants، مثل 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 التي يتم إنشاؤها من حزمة التطبيق هذه والتي تستهدف Android 6.0 (مستوى واجهة برمجة التطبيقات 23) أو الإصدارات الأحدث الآن إصدارات غير مضغوطة من مكتباتك المجمّعة من رموز برمجية أصلية تلقائيًا. يتجنّب هذا التحسين حاجة الجهاز إلى إنشاء نسخة من المكتبة، وبالتالي يقلّل حجم تطبيقك على القرص. إذا كنت تفضّل إيقاف هذا التحسين، أضِف ما يلي إلى ملف gradle.properties الخاص بك:

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

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

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

    لتفعيل هذا التحسين يدويًا، انقر على ملف > الإعدادات > تجريبي > Gradle (استوديو Android > الإعدادات المفضّلة > تجريبي > Gradle على جهاز Mac) وضَع علامة في مربّع الاختيار مزامنة شكل الإنشاء النشط فقط.

    ملاحظة: يتيح هذا التحسين دعمًا كاملاً للمشاريع التي تتضمّن لغتَي 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