الإصدار 3.3.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android (يناير 2019)
يتطلّب هذا الإصدار ما يلي:
الحد الأدنى للإصدار | الإصدار التلقائي | الملاحظات | |
---|---|---|---|
Gradle | 4.10.1 | 4.10.1 | لمزيد من المعلومات، اطّلِع على تحديث Gradle. عند استخدام الإصدار 5.0 من Gradle والإصدارات الأحدث، ينخفض حجم مساحة التخزين المؤقت التلقائي لبرنامج 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
عند تضمين هذا العلامة، ينفّذ المكوّن الإضافي لنظام Gradle المتوافق مع Android معالجات التعليقات التوضيحية في مهمة منفصلة ويسمح بتنفيذ مهمة تجميع Java بشكل تدريجي.
-
-
معلومات أفضل لتصحيح الأخطاء عند استخدام واجهة برمجة تطبيقات قديمة: عندما ترصد الإضافة أنّك تستخدم واجهة برمجة تطبيقات لم يعُد يتم توفير الدعم لها، يمكنها الآن تقديم معلومات أكثر تفصيلاً لمساعدتك في تحديد مكان استخدام واجهة برمجة التطبيقات هذه. للاطّلاع على المعلومات الإضافية، عليك تضمين ما يلي في ملف
gradle.properties
الخاص بمشروعك:android.debug.obsoleteApi=true
يمكنك أيضًا تفعيل العلامة من خلال تمرير
-Pandroid.debug.obsoleteApi=true
من سطر الأوامر. -
يمكنك إجراء اختبارات الأجهزة على وحدات الميزات من سطر الأوامر.
تغييرات السلوك
-
إعداد المهام عند الطلب: يستخدم المكوّن الإضافي الآن واجهة برمجة التطبيقات الجديدة لإنشاء المهام في Gradle لتجنُّب تهيئة المهام وإعدادها إذا لم تكن مطلوبة لإكمال عملية الإنشاء الحالية (أو المهام غير المدرَجة في الرسم البياني لمهام التنفيذ). على سبيل المثال، إذا كان لديك عدة صيغ من الإصدار، مثل صيغ الإصدار "release" و"debug"، وكنت بصدد إنشاء إصدار "debug" من تطبيقك، تتجنّب الإضافة تهيئة المهام وإعدادها لإصدار "release" من تطبيقك.
قد يؤدي استدعاء بعض الطرق القديمة في واجهة برمجة التطبيقات 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
- تستدعي عملية الإنشاء