الإصدار 3.4.0 من "المكوّن الإضافي لنظام Gradle المتوافق مع Android" (نيسان/أبريل 2019)
يتطلّب هذا الإصدار من المكوّن الإضافي لنظام Android ما يلي:
الحد الأدنى للإصدار | الإصدار التلقائي | ملاحظات | |
---|---|---|---|
Gradle | 5.1.1 | 5.1.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.4.2 (تموز/يوليو 2019)
يتوافق هذا التعديل البسيط مع الإصدار 3.4.2 من "استوديو Android"، ويتضمّن إصلاحات مختلفة للأخطاء وتحسينات في الأداء. للاطّلاع على قائمة بالإصلاحات البارزة للأعطال، يُرجى قراءة المشاركة ذات الصلة على مدونة تحديثات الإصدارات.
3.4.1 (أيار/مايو 2019)
يتوافق هذا التعديل البسيط مع الإصدار 3.4.1 من "استوديو Android"، ويتضمّن إصلاحات مختلفة للأخطاء وتحسينات في الأداء. للاطّلاع على قائمة بالإصلاحات البارزة للأعطال، يُرجى قراءة المشاركة ذات الصلة على مدونة تحديثات الإصدارات.
الميزات الجديدة
-
إعدادات جديدة لفحص التبعية في أداة lint: تغيّر السلوك الخاص بـ
lintChecks
وتم تقديمlintPublish
، وهو إعداد جديد للتعلّق، بهدف منح المستخدمين مزيدًا من التحكّم في عمليات تجميع عمليات فحص lint في مكتبات 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 واحدة. -
R8 مفعَّل تلقائيًا: يدمج 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
لمعرفة مزيد من المعلومات عن ضبط اسم حزمة من خلال المكوّن الإضافي لنظام Gradle المتوافق مع Android، اطّلِع على ضبط رقم تعريف التطبيق.