الإصدار 3.3.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android (كانون الثاني/يناير 2019)
يتطلب هذا الإصدار من مكوّن Android الإضافي ما يلي:
-
Gradle 4.10.1 أو إصدار أحدث. للحصول على مزيد من المعلومات، يمكنك الاطّلاع على القسم حول تحديث Gradle.
ملاحظة: عند استخدام Gradle 5.0 والإصدارات الأحدث، يقلّ حجم كومة الذاكرة المؤقتة التلقائي لـ Gradle من 1 غيغابايت إلى 512 ميغابايت. قد يؤدي ذلك إلى تراجع في أداء الإصدار. ولتجاوز هذا الإعداد التلقائي، يمكنك تحديد حجم الحزمة الخفيّة من Gradle في ملف
gradle.properties
الخاص بمشروعك. -
الإصدار 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" ويتضمّن إصلاحات مختلفة للأخطاء وتحسينات في الأداء.
الميزات الجديدة
-
تحسين مزامنة مسار الفئة: عند معالجة التبعيات لمسارات فئات وقت التشغيل والتجميع، يحاول المكوّن الإضافي لنظام Gradle المتوافق مع Android إصلاح بعض التعارضات في إصدارات المراحل اللاحقة من التبعيات التي تظهر في مسارات فئات متعددة.
على سبيل المثال، إذا كان مسار الفئة وقت التشغيل يتضمّن الإصدار 2.0 من المكتبة أ وكان مسار فئة التجميع يتضمّن الإصدار 1.0 من المكتبة أ، سيعدّل المكوّن الإضافي تلقائيًا الاعتمادية على مسار التصنيف البرمجي إلى الإصدار 2.0 من المكتبة أ لتجنب حدوث أخطاء.
أمّا إذا كان مسار الفئة وقت التشغيل يتضمن الإصدار 1.0 من المكتبة أ وكانت الحزمة تتضمّن الإصدار 2.0 من المكتبة أ، فلن يقلل المكوّن الإضافي من تبعية مسار التصنيف البرمجي إلى الإصدار 1.0 من المكتبة أ، وستظهر لك رسالة خطأ. لمزيد من المعلومات، راجِع القسم حل التعارضات بين مسارات الفئات.
-
تحسين تجميع Java التدريجي عند استخدام معالِجات التعليقات التوضيحية: يؤدي هذا التحديث إلى تقليل وقت الإنشاء من خلال تحسين التوافق مع التجميع التزايدي للغة Java عند استخدام معالِجات التعليقات التوضيحية.
ملاحظة: هذه الميزة متوافقة مع الإصدار 4.10.1 من Gradle والإصدارات الأحدث، باستثناء الإصدار 5.1 من Gradle بسبب مشكلة Gradle 8194.
-
بالنسبة إلى المشاريع التي تستخدم لغة البرمجة Kapt (معظم المشاريع التي تستخدم لغة البرمجة Kotlin فقط والمشاريع المختلطة بين لغة Kotlin-Java): يتم تفعيل التجميع التزايدي للغة Java حتى عند استخدام ميزة ربط البيانات أو المكوّن الإضافي retro-lambda. معالجة التعليقات التوضيحية من خلال مهمة Kapt ليست متزايدة بعد.
-
بالنسبة إلى المشاريع التي لا تستخدم Kapt (المشاريع التي تستخدم Java فقط): إذا كانت معالِجات التعليقات التوضيحية التي تستخدمها كل الدعم للمعالجة التزايدية للتعليقات التوضيحية، يتم تفعيل التجميع التزايدي للتعليقات التوضيحية تلقائيًا. ولمراقبة الاعتماد المتزايد لمعالج التعليقات التوضيحية، يمكنك مشاهدة مشكلة Gradle 5277.
مع ذلك، إذا كان معالِج تعليقات تعليقات توضيحية واحد أو أكثر لا يتوافق مع الإصدارات التدريجية، لن يتم تفعيل تجميع Java التزايدي. بدلاً من ذلك، يمكنك تضمين العلامة التالية في ملف
gradle.properties
:android.enableSeparateAnnotationProcessing=true
عند تضمين هذه العلامة، ينفِّذ المكوّن الإضافي لنظام Gradle المتوافق مع Android معالِجات التعليقات التوضيحية في مَهمّة منفصلة، ويسمح بتشغيل مهمة تجميع Java بشكل تدريجي.
-
-
معلومات أفضل لتصحيح الأخطاء عند استخدام واجهة برمجة تطبيقات قديمة: عندما يكتشف المكون الإضافي أنك تستخدم واجهة برمجة تطبيقات لم تعد متوافقة، يمكنك الآن توفير معلومات أكثر تفصيلاً لمساعدتك في تحديد أماكن استخدام واجهة برمجة التطبيقات هذه. للاطّلاع على المعلومات الإضافية، يجب تضمين ما يلي في ملف
gradle.properties
الخاص بمشروعك:android.debug.obsoleteApi=true
يمكنك أيضًا تفعيل العلامة من خلال تمرير
-Pandroid.debug.obsoleteApi=true
من سطر الأوامر. -
يمكنك إجراء اختبارات قياس الأداء على وحدات الميزات من سطر الأوامر.
التغييرات في السلوك
-
عملية إعداد المهام البطيئة: يستخدم المكوّن الإضافي الآن واجهة برمجة التطبيقات الجديدة لإنشاء المهام في Gradle لتجنُّب إعداد وإعداد المهام غير اللازمة لإكمال الإصدار الحالي (أو المهام غير المدرَجة في الرسم البياني لمهام التنفيذ). على سبيل المثال، إذا كان لديك صيغ متعددة للإصدار، مثل صيغ الإصدار "الإصدار" و"debug"، وكنت تريد إنشاء إصدار "تصحيح الأخطاء" من تطبيقك، يتجنّب المكوّن الإضافي إعداد المهام وإعدادها للإصدار "الإصدار" من تطبيقك.
قد يؤدي طلب بعض الطرق القديمة في 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 التي تم إنشاؤها من حِزمة التطبيق تلك التي تستهدف الإصدار Android 6.0 (المستوى 23 من واجهة برمجة التطبيقات) أو الإصدارات الأحدث ستتضمّن الآن الإصدارات غير المضغوطة من مكتباتك الأصلية تلقائيًا. يساعد هذا التحسين في تجنُّب حاجة الجهاز إلى إنشاء نسخة من المكتبة، وبالتالي يقلل حجم التطبيق على القرص. وإذا كنت تفضّل إيقاف هذا التحسين، يمكنك إضافة ما يلي إلى ملف
gradle.properties
:android.bundle.enableUncompressedNativeLibs = false
-
يفرض المكوّن الإضافي الحد الأدنى من إصدارات بعض المكوّنات الإضافية التابعة لجهات خارجية.
-
مزامنة المشروع بخيار واحد: إنّ مزامنة مشروعك مع إعدادات تصميمك هي خطوة مهمة لمساعدة "استوديو Android" في التعرّف على بنية مشروعك. مع ذلك، قد تستغرق هذه العملية وقتًا طويلاً في المشاريع الكبيرة. إذا كان مشروعك يستخدم عدّة صيغ إصدار، يمكنك الآن تحسين عمليات المزامنة الخاصة بالمشروع من خلال حصرها على الصيغة التي اخترتها حاليًا.
يجب استخدام الإصدار 3.3 من "استوديو Android" أو إصدار أحدث مع الإصدار 3.3.0 من "المكوّن الإضافي لنظام Gradle المتوافق مع Android" أو الإصدارات الأحدث لتفعيل هذا التحسين. عند استيفاء هذه المتطلبات، يطلب منك بيئة تطوير البرامج (IDE) تفعيل هذا التحسين عند مزامنة مشروعك. يتم تفعيل ميزة التحسين تلقائيًا في المشاريع الجديدة أيضًا.
لتفعيل هذا التحسين يدويًا، انقر على ملف > الإعدادات > تجريبي > 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
.
- تطلب عملية التصميم استدعاء