الإصدار 3.4.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android (نيسان/أبريل 2019)
يتطلب هذا الإصدار من مكوّن Android الإضافي ما يلي:
-
Gradle 5.1.1 أو إصدار أحدث. للحصول على مزيد من المعلومات، يمكنك الاطّلاع على القسم حول تحديث Gradle.
ملاحظة: عند استخدام Gradle 5.0 والإصدارات الأحدث، يقلّ حجم كومة الذاكرة المؤقتة التلقائي لـ Gradle من 1 غيغابايت إلى 512 ميغابايت. قد يؤدي ذلك إلى تراجع في أداء الإصدار. لإلغاء هذا الإعداد التلقائي، حدِّد حجم الذاكرة المؤقتة لبرنامج Gradle في ملف
gradle.properties
الخاص بمشروعك. -
الإصدار 28.0.3 من أدوات إصدار حزمة تطوير البرامج (SDK) أو إصدار أحدث.
يتوافق هذا التحديث البسيط مع الإعدادات والميزات التلقائية الجديدة في مستوى ظهور الحزمة في Android 11.
يمكنك الاطّلاع على ملاحظات الإصدار 4.0.1 للحصول على التفاصيل.
3.4.2 (تموز/يوليو 2019)
يتوافق هذا التحديث البسيط مع الإصدار 3.4.2 من "استوديو Android" ويتضمّن إصلاحات مختلفة للأخطاء وتحسينات في الأداء. للاطّلاع على قائمة بإصلاحات الأخطاء الملحوظة، اقرأ المشاركة ذات الصلة في مدونة تحديثات الإصدارات.
3.4.1 (أيار/مايو 2019)
يتوافق هذا التحديث البسيط مع الإصدار 3.4.1 من "استوديو Android" ويتضمّن إصلاحات أخطاء متنوعة وتحسينات في الأداء. للاطّلاع على قائمة بإصلاحات الأخطاء الملحوظة، اقرأ المشاركة ذات الصلة في مدونة تحديثات الإصدارات.
الميزات الجديدة
-
إعدادات تبعية جديدة لفحص الوبر: تم تغيير سلوك
lintChecks
وتم تقديم إعدادات تبعية جديدة، وهي "lintPublish
"، لمنحك مزيدًا من التحكّم في عمليات فحص الوبر التي يتم تضمينها في مكتبات Android الخاصة بك.-
lintChecks
: هذه إعدادات حالية يجب استخدامها لعمليات التحقّق من الوبر والتي تريد تنفيذها فقط عند إنشاء مشروعك على الجهاز. إذا كنت تستخدم في السابق إعدادات الاعتماديةlintChecks
لتضمين عمليات التحقّق من Lint في AAR المنشور، عليك نقل بيانات هذه التبعيات بدلاً من ذلك لاستخدام إعداداتlintPublish
الجديدة المُوضَّحة أدناه. -
lintPublish
: استخدِم هذه الإعدادات الجديدة في مشاريع المكتبة لعمليات التحقّق من الوبر التي تريد تضمينها في ميزة AAR المنشورة، كما هو موضّح أدناه. وهذا يعني أنّ المشاريع التي تستهلك مكتبتك تطبّق أيضًا عمليات فحص الوبر تلك.
يستخدم نموذج الرمز البرمجي التالي إعدادات الاعتمادية في مشروع مكتبة Android محلي.
dependencies { // Executes lint checks from the ':lint' project at build time. lintChecks project(':lint') // Packages lint checks from the ':lintpublish' in the published AAR. lintPublish project(':lintpublish') }
dependencies { // Executes lint checks from the ':lint' project at build time. lintChecks(project(":lint")) // Packages lint checks from the ':lintpublish' in the published AAR. lintPublish(project(":lintpublish")) }
-
بشكل عام، من المفترض أن تشهد مهام التغليف والتوقيع تحسُّنًا بشكل عام في سرعة الإصدار. إذا لاحظت تراجعًا في الأداء يتعلق بهذه المهام، يُرجى الإبلاغ عن خطأ.
-
التغييرات في السلوك
-
تحذير بشأن إيقاف المكوّن الإضافي لميزة "تطبيقات Android الفورية" : إذا كنت لا تزال تستخدم المكوّن الإضافي
com.android.feature
لإنشاء تطبيقك الفوري، سيطرح لك الإصدار 3.4.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android تحذيرًا بشأن الإيقاف النهائي. للتأكد من أنه لا يزال بإمكانك إنشاء تطبيقك الفوري على الإصدارات المستقبلية من المكوّن الإضافي، عليك نقل تطبيقك الفوري إلى استخدام المكوّن الإضافي للميزات الديناميكية، والذي يتيح لك أيضًا نشر تجارب تطبيقاتك المثبّتة وتطبيقاتك الفورية من خلال مجموعة واحدة من حزمات تطبيق Android. -
يتم تفعيل الإصدار 8 من نظام التشغيل Android تلقائيًا: تعمل الإصدار R8 على دمج عمليات إزالة التشويش وتقليصه وإخفاء مفاتيح فك التشفير وتحسينه والفهرسة، ما يؤدي إلى تحسينات ملحوظة في أداء الإصدار. تم طرح الإصدار R8 في الإصدار 3.3.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android، وتم تفعيله الآن بشكل تلقائي لكل من مشاريع التطبيقات ومشاريع مكتبة Android التي تستخدم المكوّن الإضافي 3.4.0 والإصدارات الأحدث.
توفّر الصورة أدناه نظرة عامة عالية المستوى على عملية التجميع قبل طرح R8.
والآن باستخدام R8، يتم الانتهاء من إزالة مفاتيح فك التشفير وتقليصها وإخفاء مفاتيح فك التشفير والتحسين والفهرسة (D8) في خطوة واحدة كما هو موضح أدناه.
يُرجى العِلم أنّ الإصدار R8 مصمّم للتوافق مع قواعد ProGuard الحالية، لذا لن تحتاج على الأرجح إلى اتخاذ أي إجراءات للاستفادة من R8. مع ذلك، وبما أنّ تقنية ProGuard تختلف عن تلك التي تم تصميمها خصيصًا لمشاريع Android، قد يؤدي تقليص الخدمة وتحسين الأداء إلى إزالة الرموز البرمجية التي قد لا تتم إزالتها في ProGuard. لذلك، قد تحتاج في هذه الحالة المستبعدَة إلى إضافة قواعد إضافية للاحتفاظ بهذا الرمز في ناتج الإصدار.
إذا كنت تواجه مشاكل في استخدام الإصدار R8، يُرجى الاطّلاع على الأسئلة الشائعة حول التوافق مع R8 لمعرفة ما إذا كان هناك حل لمشكلتك. وإذا لم يكن الحلّ موثّقًا،
يُرجى الإبلاغ عن الخطأ.
يمكنك إيقاف R8 من خلال إضافة أحد الأسطر التالية إلى ملف gradle.properties
لمشروعك:
# Disables R8 for Android Library modules only.
android.enableR8.libraries = false
# Disables R8 for all modules.
android.enableR8 = false
ملاحظة: بالنسبة إلى نوع تصميم معيّن، عند ضبط useProguard
على false
في ملف build.gradle
في وحدة تطبيقك، يستخدم المكوّن الإضافي لنظام Gradle المتوافق مع Android R8 لتقليص الرمز البرمجي لتطبيقك لنوع التصميم هذا، بصرف النظر عمّا إذا تم إيقاف R8 في ملف gradle.properties
الخاص بمشروعك أم لا.
-
تم إيقاف
ndkCompile
نهائيًا: تظهر لك الآن رسالة خطأ في الإصدار إذا حاولت استخدامndkBuild
لتجميع مكتباتك الأصلية. وبدلاً من ذلك، يجب استخدام إما CMake أو ndk-build من أجل إضافة رمز C وC++ إلى مشروعك.
المشاكل المعروفة
-
لا يتم حاليًا فرض الاستخدام الصحيح لأسماء الحِزم الفريدة، ولكنّه سيصبح أكثر صرامة في الإصدارات اللاحقة من المكوّن الإضافي. في الإصدار 3.4.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android، يمكنك الموافقة عليه لمعرفة ما إذا كان مشروعك يشير إلى أسماء حِزم مقبولة من خلال إضافة السطر أدناه إلى ملف
gradle.properties
.android.uniquePackageNames = true
لمعرفة المزيد من المعلومات حول إعداد اسم حزمة من خلال مكوّن Android Gradle الإضافي، يمكنك الاطّلاع على ضبط رقم تعريف التطبيق.