الإصدار 7.1.0 من "المكوّن الإضافي لنظام Gradle المتوافق مع Android" (يناير 2022)
الإصدار 7.1.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android هو إصدار رئيسي يتضمّن مجموعة متنوعة من الميزات والتحسينات الجديدة.
7.1.3 (نيسان/أبريل 2022)
يتضمّن هذا التحديث البسيط إصلاحات الأخطاء التالية:
- مشاكل الصفوف المكرّرة التي أبلغ عنها R8
للاطّلاع على قائمة كاملة بإصلاحات الأخطاء المضمّنة في هذا الإصدار، راجِع مشاركة مدوّنة حول الإصدار 3 من حزمة تصحيح Android Studio Bumblebee.
7.1.2 (شباط/فبراير 2022)
يتضمّن هذا التحديث البسيط إصلاحات الأخطاء التالية:
- تعذُّر تنفيذ عملية تحويل رمز بايت ASM في الإصدار 7.1.0-rc01 من المكوّن الإضافي لنظام Gradle المتوافق مع Android أثناء اختبارات الوحدات
- تعذُّر مزامنة Gradle مع ظهور رسالة الخطأ "Unable to load class 'com.android.build.api.extension.AndroidComponentsExtension'."
- لا يمكن استخدام بعض أقسام DSL الجديدة من Groovy DSL في الإصدار 7.0.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android.
- واجهة برمجة التطبيقات الجديدة للنشر في الإصدار 7.1 من "مكوّن Android الإضافي في Gradle": لا يتم توقيع ملف javadoc jar الذي تم إنشاؤه
- يجب أن تستخدم ClassesDataSourceCache أحدث إصدار من Asm
- لا ينشر Android Studio BumbleBee آخر التغييرات دائمًا
للاطّلاع على قائمة كاملة بإصلاحات الأخطاء المضمّنة في هذا الإصدار، راجِع مشاركة المدونة الإلكترونية حول الإصدار 2 من حزمة تصحيح Android Studio Bumblebee.
7.1.1 (شباط/فبراير 2022)
يتوافق هذا التحديث البسيط مع الإصدار 1 من حزمة Android Studio Bumblebee.
للاطّلاع على قائمة بإصلاحات الأخطاء المضمّنة في هذا الإصدار، يُرجى الرجوع إلى مشاركة المدونة حول الإصدار 1 من حزمة تصحيح Android Studio Bumblebee.
التوافق
الحد الأدنى للإصدار | الإصدار التلقائي | الملاحظات | |
---|---|---|---|
Gradle | 7.2 | 7.2 | لمزيد من المعلومات، اطّلِع على تحديث Gradle. |
أدوات إنشاء حزمة تطوير البرامج (SDK) | 30.0.3 | 30.0.3 | ثبِّت أو اضبط أدوات إنشاء حزمة تطوير البرامج (SDK). |
NDK | لا ينطبق | 21.4.7075529 | ثبِّت أو اضبط إصدارًا مختلفًا من NDK. |
JDK | 11 | 11 | لمزيد من المعلومات، يُرجى الاطّلاع على ضبط إصدار JDK. |
أصبحت مهمة تحليل Lint قابلة للتخزين المؤقت
أصبح AndroidLintAnalysisTask
متوافقًا الآن مع
ذاكرة التخزين المؤقت لإنشاء Gradle. إذا فعّلت ذاكرة التخزين المؤقت للإنشاء من خلال ضبط
org.gradle.caching=true
في ملف gradle.properties
،
ستحصل مهمة تحليل lint على ناتجها من ذاكرة التخزين المؤقت للإنشاء عند
الإمكان.
غالبًا ما تكون مهمة تحليل lint هي أكبر عائق عند تشغيل lint باستخدام مكوّن Android Gradle الإضافي، لذا يؤدي تفعيل ذاكرة التخزين المؤقت للإنشاء إلى تحسين سرعة الإنشاء عند تشغيل lint في العديد من الحالات. من المفترض أن تلاحظ تحسّنًا ملحوظًا في الأداء، على سبيل المثال، إذا كان لديك مشروع متعدد الوحدات ونظّفت دليل الإنشاء قبل تشغيل أداة Lint على خادم الدمج المتواصل.
يمكن لوحدات C/C++ الآن الإشارة إلى وحدات C/C++ أخرى في المشروع نفسه
يمكن الآن إعداد وحدة Gradle Android التي تتضمّن رمز C/C++ للإشارة إلى ملفات العناوين ورمز المكتبة في وحدة Gradle أخرى. يُستخدم بروتوكول Prefab لنقل العناوين والمكتبات بين وحدات Gradle.
المتطلبات
-
يجب أن تكون الوحدة المستهلكة هي
CMake
وليسndk-build
. سيتطلّب توفير دعم لـ ndk-build إجراء تحديث مستقبلي لحزمة NDK. قد تكون وحدة النشرCMake
أوndk-build
. -
يجب أن تفعّل وحدة الاستهلاك
prefab
في ملفbuild.gradle
.
android {
buildFeatures {
prefab true
}
}
- يجب أن يفعّل نموذج النشر السمة
prefabPublishing
في الملفbuild.gradle
.
android {
buildFeatures {
prefabPublishing true
}
}
- يجب أن يشير نموذج الاستهلاك إلى نموذج النشر من خلال إضافة سطر في ملف
build.gradle
ضمن كتلةdependencies
. مثلاً:
dependencies {
implementation project(':mylibrary')
}
- يجب أن يعرض وحدة النشر حزمة باستخدام قسم
prefab
. مثلاً:
android {
prefab {
mylibrary {
libraryName "libmylibrary"
headers "src/main/cpp/include"
}
}
}
- قد يستخدم ملف
CMakeLists.txt
للوحدة النمطية المستهلكةfind_package()
لتحديد موقع الحزمة التي نشرتها الوحدة النمطية المنتجة. مثلاً:
find_package(mylibrary REQUIRED CONFIG)
target_link_libraries(
myapplication
mylibrary::mylibrary)
- يجب أن يكون هناك ملف STL واحد للتطبيق بأكمله. لذا، على سبيل المثال، يمكن لكل من الوحدات النمطية المستهلكة والناشرة استخدام STL المشتركة بلغة C++.
android {
defaultConfig {
externalNativeBuild {
cmake {
arguments '-DANDROID_STL=c++_shared'
}
}
}
}
للحصول على مزيد من التوضيح حول كيفية ضبط مستهلكي ومنتجي AAR الأصليين باستخدام AGP، راجِع التبعيات الأصلية باستخدام AGP.
إعدادات المستودع في ملف settings.gradle
عند إنشاء مشروع جديد في Android Studio Bumblebee، يحتوي الملف build.gradle
ذو المستوى الأعلى على كتلة plugins
،
يليها رمز برمجي لتنظيف دليل الإصدار:
plugins {
id 'com.android.application' version '7.1.0-beta02' apply false
id 'com.android.library' version '7.1.0-beta02' apply false
id 'org.jetbrains.kotlin.android' version '1.5.30' apply false
}
task clean(type: Delete) {
delete rootProject.buildDir
}
أصبحت إعدادات المستودع التي كانت سابقًا في ملف build.gradle
ذي المستوى الأعلى متوفرة الآن في ملف settings.gradle
:
pluginManagement {
repositories {
gradlePluginPortal()
google()
mavenCentral()
}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
}
}
rootProject.name = 'GradleManagedDeviceTestingNew'
include ':app'
لم يتم تغيير ملف build.gradle
على مستوى الوحدة. لذا، استخدِم ملف build.gradle
ذي المستوى الأعلى وملف settings.gradle
لتحديد إعدادات الإصدار التي تنطبق على جميع الوحدات في مشروعك، أو المستودعات والتبعيات التي تنطبق على Gradle نفسه، واستخدِم ملف build.gradle
على مستوى الوحدة لتحديد إعدادات الإصدار الخاصة بوحدة معيّنة ضمن مشروعك.
أداة تقليص الموارد المحسَّنة
يتضمّن Android Studio Bumblebee أداة محسّنة لتقليل حجم الموارد تساعد في تقليل حجم تطبيقك.
إتاحة التطبيقات التي تتضمّن ميزات ديناميكية
تم تعديل التنفيذ التلقائي لأداة تصغير حجم موارد Android في الإصدار 7.1.0-alpha09 من المكوّن الإضافي لنظام Gradle المتوافق مع Android. يتيح التنفيذ الجديد تصغير حجم التطبيقات باستخدام الوحدات الديناميكية.
تخفيضات تجريبية إضافية في حجم التطبيق
يمكن أن تقلّل عملية التنفيذ الجديدة لأداة تصغير حجم الموارد حجم التطبيق المصغّر بشكل أكبر من خلال تعديل جدول الموارد لإزالة موارد القيم غير المستخدَمة والمراجع إلى موارد الملفات غير المستخدَمة. يمكن لأداة تصغير حجم الموارد الجديدة حذف موارد الملفات غير المستخدَمة بالكامل، ما يؤدي إلى تقليل حجم تطبيقك بشكل أكبر. لا يتم تفعيل هذا السلوك تلقائيًا بعد، ولكن يمكنك الموافقة على تجربته من خلال إضافة الخيار التجريبي android.experimental.enableNewResourceShrinker.preciseShrinking=true
إلى ملف gradle.properties
في مشروعك.
يُرجى الإبلاغ عن أي مشاكل تواجهك مع أداة تصغير الموارد الجديدة أو العلامة التجريبية. للمساعدة في تشخيص المشاكل أو كحلّ مؤقت، يمكنك الرجوع إلى التنفيذ السابق من خلال إضافة
android.enableNewResourceShrinker=false
إلى
gradle.properties
في مشروعك.
يحلّ مصغّر الموارد الجديد محل الموارد غير المستخدَمة المستندة إلى الملفات بملفات بسيطة مختلفة قليلاً عن مصغّر الموارد السابق، ولكن من غير المتوقّع أن يؤثر ذلك في وقت التشغيل.
من المقرَّر إزالة طريقة التنفيذ القديمة في الإصدار 8.0.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android.
نشر تنويعات الإصدار
يتيح لك الإصدار 7.1.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android والإصدارات الأحدث تحديد صيغ الإنشاء التي تريد نشرها في مستودع Apache Maven. تنشئ "مكوّن Android" الإضافي (AGP) مكوّنًا يحتوي على صيغة إنشاء واحدة أو متعددة استنادًا إلى لغة DSL الجديدة للنشر، والتي يمكنك استخدامها لتخصيص عملية النشر في مستودع Maven. مقارنةً بالإصدارات السابقة، يتيح ذلك أيضًا تجنُّب العمل غير الضروري، إذ لن يتم إنشاء أي مكوّنات تلقائيًا. لمزيد من المعلومات، يمكنك الاطّلاع على نموذج رمز النشر.
نشر ملف Javadoc JAR
يتيح لك الإصدار 7.1.0 من "مكوّن Android الإضافي لنظام Gradle" والإصدارات الأحدث إنشاء مستندات Javadoc من مصادر Java وKotlin ونشر ملفات Javadoc JAR بالإضافة إلى ملفات AAR لمشاريع المكتبات. تتم إضافة Javadoc إلى ملفات POM وبيانات Gradle الوصفية الخاصة بالوحدة{:.external}. يمكنك تفعيل هذه الميزة من خلال إضافة withJavadocJar()
في singleVariant
أو في وحدة النشر multipleVariants
.
لمزيد من المعلومات، اطّلِع على
نموذج الرمز لخيارات النشر.
نشر ملف JAR الخاص بالمصادر
يتيح لك الإصدار 7.1.0 من "مكوّن Android الإضافي لنظام Gradle" والإصدارات الأحدث نشر ملفات JAR المصدر بلغتَي Java وKotlin، بالإضافة إلى ملفات AAR لمشاريع المكتبات. تتم إضافة المصادر إلى ملفات POM وبيانات Gradle الوصفية الخاصة بالوحدة{:.external}. يمكنك تفعيل هذه الميزة من خلال إضافة withSourcesJar()
في singleVariant
أو multipleVariants
كتلة النشر. لمزيد من المعلومات، اطّلِع على
نموذج الرمز لخيارات النشر.
Lint block semantic change
تراعي الآن جميع طرق Lint التي تتجاوز مستوى الخطورة المحدّد لمشكلة معيّنة، مثل enable
وdisable
/ignore
وinformational
وwarning
وerror
وfatal
، ترتيب الإعدادات. على سبيل المثال، يؤدي ضبط مشكلة على أنّها خطيرة في finalizeDsl()
إلى إلغاء إيقافها في لغة DSL الرئيسية. لمزيد من المعلومات، راجِع مستندات مرجع lint{}
ونقاط التوسيع ومسار إنشاء Android.
التوافق مع Safe Args في Navigation
تمت إزالة واجهات برمجة التطبيقات الخاصة بالمكوّن الإضافي لنظام Gradle المتوافق مع Android والتي يعتمد عليها المكوّن الإضافي لنظام Gradle الخاص بـ Safe Args في Navigation. لا يتوافق الإصدار 7.1 من "مكوّن Android الإضافي لبرنامج Gradle" مع الإصدارات 2.4.0-rc1 أو 2.4.0 من Navigation Safe Args، ولكنّه يتوافق مع الإصدارَين 2.5.0-alpha01 و2.4.1. في الوقت الحالي، يمكنك استخدام الإصدار 7.1 من "مكوّن Android الإضافي في Gradle" مع إصدار تجريبي من Navigation Safe Args، وهو الإصدار 2.5.0-SNAPSHOT من Navigation. لاستخدام إصدار اللقطة، اتّبِع تعليمات اللقطة مع رقم تعريف الإصدار 8054565.
بالإضافة إلى ذلك، لن يعمل الإصداران 2.4.1 و2.5.0 من Navigation Safe Args مع الإصدار 4.2 من "مكوّن Android الإضافي لبرنامج Gradle"، ويجب استخدام الإصدار 7.0 من "مكوّن Android الإضافي لبرنامج Gradle" أو إصدار أحدث لاستخدام هذين الإصدارين من Safe Args.
إيقاف إنشاء المكوّنات تلقائيًا
بدءًا من الإصدار 8.0 من "مكوّن Android الإضافي في Gradle"، سيتم إيقاف ميزة الإنشاء التلقائي للمكوّنات تلقائيًا.
في الوقت الحالي، تنشئ الإصدار 7.1 من "مكوّن Android الإضافي لنظام Gradle" تلقائيًا مكوّنًا لكل صيغة إنشاء،
ويحمل هذا المكوّن الاسم نفسه الخاص بصيغة الإنشاء، بالإضافة إلى مكوّن all
يحتوي على جميع صيغ الإنشاء. سيتم إيقاف ميزة الإنشاء التلقائي للمكوّنات. للانتقال إلى السلوك الجديد، عليك إيقاف إنشاء المكوّنات تلقائيًا يدويًا من خلال ضبط android.disableAutomaticComponentCreation
على true.
. لمزيد من المعلومات، راجِع استخدام مكوّن Maven Publish الإضافي.
التوافق مع خدمة "مراقبة الأداء في Firebase"
الإصدار 7.1 من المكوّن الإضافي لنظام Gradle المتوافق مع Android غير متوافق مع الإصدار 1.4.0 والإصدارات الأقدم من المكوّن الإضافي لنظام Gradle الخاص بخدمة "مراقبة الأداء في Firebase". لن يحدِّث "مساعد ترقية المكوّن الإضافي لنظام Android الأساسي" المكوّن الإضافي تلقائيًا إلى الإصدار 1.4.1، لذا إذا كنت تستخدم firebase-perf
وأردت ترقية المكوّن الإضافي لنظام Android الأساسي إلى الإصدار 7.1، عليك إجراء هذه الترقية يدويًا.
المشاكل المعروفة
يوضّح هذا القسم المشاكل المعروفة في الإصدار 7.1.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android.
مشاكل في اختبار الوحدات لمشروع تطبيق يستخدم مكوّن Hilt الإضافي
يحتوي مسار فئة الاختبار على مستوى الوحدة على فئات التطبيق غير المزوَّدة بأدوات، ما يعني أنّ Hilt لا يزوّد فئات التطبيق بأدوات للتعامل مع عملية إدخال التبعية عند تنفيذ الاختبارات على مستوى الوحدة.
سيتم حلّ هذه المشكلة في الإصدار 7.1.1، يُرجى الاطّلاع على المشكلة رقم 213534628.