الإصدار 9.2 من المكوّن الإضافي لنظام Gradle المتوافق مع Android هو إصدار ثانوي يتضمّن مجموعة متنوّعة من الميزات والتحسينات الجديدة.
التوافق
الحدّ الأقصى لمستوى واجهة برمجة التطبيقات الذي يتوافق معه الإصدار 9.2 من المكوّن الإضافي لنظام Gradle المتوافق مع Android هو المستوى 37.0 لواجهة برمجة التطبيقات. في ما يلي معلومات أخرى عن التوافق:
| الإصدار الأدنى | الإصدار التلقائي | ملاحظات | |
|---|---|---|---|
| Gradle | 9.4.1 | 9.4.1 | لمزيد من المعلومات، اطّلِع على تحديث Gradle. |
| أدوات تصميم حزمة تطوير البرامج (SDK) | 36.0.0 | 36.0.0 | تثبيت أو ضبط أدوات إنشاء حزمة تطوير البرامج (SDK). |
| NDK | لا ينطبق | 28.2.13676358 | ثبِّت أو اضبط إصدارًا مختلفًا من NDK. |
| JDK | 17 | 17 | لمزيد من المعلومات، يُرجى الاطّلاع على ضبط إصدار JDK. |
تقارير الاختبار والتغطية الموحّدة
يقدّم الإصدار 9.2.0-alpha07 من "مكوّن Android الإضافي في Gradle" مهامًا لإنشاء لوحات بيانات HTML تجمع نتائج الاختبارات ومقدار التغطية من أنواع الاختبارات المختلفة (الوحدات والأدوات)، والوحدات، ومتغيرات الإصدار، ما يوفّر نظرة عامة شاملة في لوحة بيانات واحدة. لمزيد من المعلومات، يُرجى الاطّلاع على إنشاء تقارير موحّدة حول نسبة استخدام رموز الصفحة وعرض تقارير الاختبار الموحّدة.
تغييرات R8
تم تضمين تغييرات R8 التالية في الإصدار 9.2.0 من "المكوّن الإضافي لنظام Gradle المتوافق مع Android".
دلالات -keepattributes أكثر صرامة للحفاظ على التعليقات التوضيحية غير المرئية في وقت التشغيل
لا يمكن قراءة التعليقات التوضيحية غير المرئية في وقت التشغيل في وقت التشغيل. وبالتالي، يزيل D8 التعليقات التوضيحية غير المرئية في وقت التشغيل بدون أي شروط، ولا يتيح أي خيار لتغيير ذلك.
لضمان التوافق مع ProGuard، تتيح أداة R8 إخراج التعليقات التوضيحية غير المرئية في وقت التشغيل. ولكن عند التحويل إلى DEX، يجب عدم الاحتفاظ بالتعليقات التوضيحية غير المرئية في وقت التشغيل. ومع ذلك، من الشائع تضمين القاعدة الملائمة -keepattributes *Annotation* (إما بشكل مباشر أو غير مباشر من قواعد الاحتفاظ بالمستهلك) في R8 للاحتفاظ بالتعليقات التوضيحية المرئية في وقت التشغيل.
للأسف، يؤدي ذلك أيضًا إلى إبقاء التعليقات التوضيحية غير المرئية في وقت التشغيل.
للتخفيف من هذه المشكلة ومطابقة سلوك D8 بشكل أفضل، لم تعُد أنماط -keepattributes
التي تتضمّن أحرف بدل تتطابق مع RuntimeInvisibleAnnotations وRuntimeInvisibleParameterAnnotations وRuntimeInvisibleTypeAnnotations.
نتيجةً لذلك، لن يتم الاحتفاظ بالتعليقات التوضيحية غير المرئية في وقت التشغيل إلا إذا تم ذكر اسم السمة بشكل صريح بدون أحرف بدل.
لن تحتفظ أي من القواعد التالية الآن بالتعليقات التوضيحية غير المرئية في وقت التشغيل:
-keepattributes *
-keepattributes *Annotation*
-keepattributes *Invisible*
للاحتفاظ بالتعليقات التوضيحية غير المرئية في وقت التشغيل، استخدِم القاعدة التالية:
-keepattributes RuntimeInvisibleAnnotations,
RuntimeInvisibleParameterAnnotations,
RuntimeInvisibleTypeAnnotations
إتاحة استخدام الأسماء المنفية في قواعد الأعضاء
تم توسيع نطاق لغة الإعدادات لتتمكّن الآن من مطابقة أنماط أسماء الأعضاء المنفية.
على سبيل المثال، لمطابقة جميع الطرق التي لا تنتهي بـ "ForTesting"، استخدِم القاعدة التالية:
-keepclassmembers class com.example.MyClass {
*** !*ForTesting(...);
}
يمكن أيضًا نفي أنماط أسماء الأعضاء في الشرط المسبق -if
للقواعد. إذا كان نمط اسم عنصر تم نفيه يحتوي على أحرف بدل، لا يمكن الرجوع إلى أحرف البدل هذه في قاعدة -if اللاحقة.
المشاكل التي تم إصلاحها
الإصدار 9.2.1 من المكوّن الإضافي لنظام Gradle المتوافق مع Android
| المشاكل التي تم إصلاحها | ||
|---|---|---|
| المكوّن الإضافي لنظام Gradle المتوافق مع Android |
|
|
الإصدار 9.2.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android
| المشاكل التي تم إصلاحها | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| المكوّن الإضافي لنظام Gradle المتوافق مع Android |
|
|||||||||||||||
| Lint |
|
|||||||||||||||
| دمج Lint |
|
|||||||||||||||
| Shrinker (R8) |
|
|||||||||||||||