الإصدار 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). |
يتوافق هذا التحديث الطفيف مع الإعدادات التلقائية والميزات الجديدة لإمكانية الوصول إلى الحِزم في Android 11.
يُرجى الاطّلاع على ملاحظات الإصدار 4.0.1 للحصول على التفاصيل.
3.3.2 (مارس 2019)
يتوافق هذا التحديث الطفيف مع الإصدار 3.3.2 من "استوديو Android" ويتضمّن إصلاحات لأخطاء متنوعة وتحسينات في الأداء. للاطّلاع على قائمة بإصلاحات الأخطاء البارزة، يُرجى قراءة المشاركة ذات الصلة في مدونة تحديثات الإصدار.
3.3.1 (فبراير 2019)
يتوافق هذا التحديث البسيط مع الإصدار 3.3.1 من "استوديو Android" ويتضمّن إصلاحات متنوعة للأخطاء وتحسينات في الأداء.
الميزات الجديدة
-
تحسين مزامنة مسار الفئة: عند تحديد التبعيات في مسارات الفئات في وقت التشغيل ووقت التجميع، تحاول إضافة 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
عند تضمين هذا العلامة، ينفّذ المكوّن الإضافي لنظام Android المتوافق مع Gradle معالجات التعليقات التوضيحية في مهمة منفصلة ويسمح بتنفيذ مهمة تجميع 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 Studio أو إصدار أحدث مع الإصدار 3.3.0 من المكوّن الإضافي Android Gradle أو إصدار أحدث لتفعيل هذا التحسين. عند استيفاء هذه المتطلبات، سيطلب منك بيئة التطوير المتكاملة تفعيل هذا التحسين عند مزامنة مشروعك. ويتم أيضًا تفعيل التحسين تلقائيًا في المشاريع الجديدة.
لتفعيل هذا التحسين يدويًا، انقر على ملف > الإعدادات > تجريبي > Gradle (Android Studio > الإعدادات المفضّلة > تجريبي > 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
.
- تستدعي عملية الإنشاء