Android Studio Hedgehog | 2023.1.1 (تشرين الثاني/نوفمبر 2023)

في ما يلي ميزات جديدة في Android Studio Hedgehog.

تحديث النظام الأساسي IntelliJ IDEA 2023.1

يتضمّن Android Studio Hedgehog تحديثات IntelliJ IDEA لعام 2023.1 التي تعمل على تحسين تجربة IDE Studio. للحصول على تفاصيل عن التغييرات، يمكنك الاطّلاع على ملاحظات إصدار IntelliJ IDEA لعام 2023.1

تحليل "مؤشرات Android الحيوية" ضِمن "إحصاءات جودة التطبيقات"

تتضمّن أداة إحصاءات جودة التطبيقات الآن بيانات "مؤشرات Android الحيوية" لتتمكّن من الوصول إليها بسهولة أكبر المقاييس الأساسية التي يجمعها Google Play وتحسين تجربة المستخدم. استخدام مؤشرات Android الحيوية لمعالجة المشاكل المتعلقة بثبات التطبيق للمساعدة في تحسين جودة تطبيقك على Google Play.

يمكنك الاطّلاع على مشاكل "مؤشرات Android الحيوية" وفلترتها والانتقال بسرعة من صفحة "تتبُّع تسلسل استدعاء الدوال البرمجية" إلى من نافذة أداة إحصاءات جودة التطبيقات. للبدء، اتبع الخطوات التالية:

  1. سجِّل الدخول إلى حساب المطوّر في "استوديو Android" باستخدام رمز الملف الشخصي. ضمن نطاق هامش السعر نهاية شريط الأدوات.
  2. افتح إحصاءات جودة التطبيق من خلال النقر على نافذة الأداة في "استوديو Android" أو النقر على عرض > نوافذ الأدوات > إحصاءات جودة التطبيقات:
  3. انقر على علامة التبويب مؤشرات Android الحيوية ضمن إحصاءات جودة التطبيقات.

الأرقام المختلفة بين "مؤشرات Android الحيوية" وCrashlytics

يُرجى العلم أنّ "مؤشرات Android الحيوية" وأداة Crashlytics قد تعرض قيمًا مختلفة عدد المستخدمين والأحداث المرتبطة بالعُطل نفسه. هذه الاختلافات لأن Play و Crashlytics يمكن أن يكتشفا الأعطال في أوقات مختلفة المستخدمين المختلفين. وفي ما يلي سببان لاستخدام Play وCrashlytics قد تختلف الأعداد:

  • ترصد اللعبة الأعطال بدءًا من وقت التشغيل، بينما يرصدها تطبيق Crashlytics. التي تحدث بعد تهيئة حزمة تطوير البرامج (SDK) في Crashlytics.
  • إذا أوقف المستخدم ميزة تقارير الأعطال عند حصوله على هاتف جديد، فإن هذه الأعطال لا يتم إبلاغ Play بها؛ ومع ذلك، يكتشف تطبيق Crashlytics الأعطال بناءً على نسخة سياسة الخصوصية الخاصة بها.

محلّل إبداعي جديد

بدءًا من Android Studio Hedgehog، أداة "تحليل الطاقة" تعرض استهلاك الطاقة على الأجهزة. يمكنك الاطّلاع على هذه البيانات الجديدة في جهاز مراقبة القضبان الكهربائية على الجهاز (ODPM). يقسّم ODPM البيانات حسب الأنظمة الفرعية التي تُسمى Power Rails. الاطّلاع على قضبان الطاقة القابلة للملف الشخصي للحصول على قائمة بالأنظمة الفرعية المتوافقة.

تتبُّع النظام بيانات استهلاك الطاقة وتعرضها. وهو جزء من محلّل وحدة المعالجة المركزية (CPU). تساعدك هذه البيانات في ربط القوة بصريًا استهلاك الجهاز مع الإجراءات التي تتم في تطبيقك. يتيح محلل الطاقة عرض هذه البيانات.

أداة تحليل الإنجازات الجديدة

للاطّلاع على البيانات من "أداة تحليل الطاقة" الجديدة، يجب تتبُّع النظام على هاتف Pixel 6 والإصدارات الأحدث. الجهاز:

  1. حدّد عرض > نوافذ الأدوات > مسجِّل اللقطات:
  2. انقر في أي مكان في المخطط الزمني لوحدة المعالجة المركزية (CPU) لفتح "برنامج تحليل وحدة المعالجة المركزية (CPU)" لبدء عملية تتبُّع النظام.

يوفّر "مساعد روابط التطبيقات" الجديد نظرة عامة شاملة على الروابط لصفحات معيّنة. لإعداده في تطبيقك. يعرض "مساعد Google" جميع الروابط الحالية لصفحات في التطبيق ملف AndroidManifest.xml، يتحقّق مما إذا كانت إعدادات تلك الصفحات الروابط صحيحة أيضًا، وتوفر طريقة سريعة لإصلاح الأخطاء في التكوينات.

لفتح مساعد روابط التطبيقات، انتقل إلى الأدوات > مساعد روابط التطبيقات في "استوديو Android". لمزيد من المعلومات عن روابط التطبيقات، يُرجى الاطّلاع على إضافة روابط تطبيقات Android

اختصار الوضع اليدوي معدَّل "التعديل المباشر"

التعديل المباشر في Android يتضمّن Studio Hedgehog اختصارًا جديدًا للوضع اليدوي (الدفع يدويًا): Control+\ (Command+\ لنظام التشغيل macOS) الوضع اليدوي مفيد في الحالات التي تريد فيها التحكم الدقيق في موعد تشغيل التحديثات وتم نشره إلى التطبيق قيد التشغيل. على سبيل المثال، إذا كنت تصدر نطاقًا واسعًا تغير في ملف ولا تريد أن تنعكس أي حالة متوسطة على الخاص بك. يمكنك الاختيار بين الدفع يدويًا والدفع يدويًا عند الحفظ. في إعدادات "التعديل المباشر" أو استخدام مؤشر واجهة المستخدم "التعديل المباشر" لمزيد من المعلومات، للحصول على معلومات، يُرجى مشاهدة مقطع الفيديو في ميزة التعديل المباشر في Jetpack إنشاء.

إنشاء نماذج معاينة متعددة

androidx.compose.ui:ui-tooling-preview 1.6.0-alpha01+ يقدم إصدارًا جديدًا واجهة برمجة تطبيقات المعاينة المتعددة النماذج: @PreviewScreenSizes، @PreviewFontScales، @PreviewLightDark، و@PreviewDynamicColors، وبالتالي باستخدام تعليق توضيحي واحد، يمكنك معاينة واجهة مستخدم Compose في السيناريوهات الشائعة.

تم طرح وضع "المعرض" الجديد في Android Studio Hedgehog إنشاء المعاينة، التي تتيح لك التركيز على معاينة واحدة في كل مرة لتوفير الموارد عند العرض. ننصح باستخدام "وضع المعرض". عندما تحتاج إلى التكرار على واجهة المستخدم الخاصة بالتطبيق والتبديل إلى أوضاع أخرى، على سبيل المثال، الشبكة أو القائمة، عندما تريد رؤية متغيرات واجهة المستخدم.

إنشاء معلومات الحالة في برنامج تصحيح الأخطاء

عند إعادة إنشاء أجزاء من واجهة مستخدم Compose بشكل غير متوقّع، قد يكون من الصعب أحيانًا لفهم السبب. والآن، عند تعيين نقطة توقف على دالة قابلة للإنشاء، تسرد الدالة debugger معلمات العنصر القابل للإنشاء حتى تتمكن بسهولة أكبر من تحديد التغييرات التي قد تكون تسببت وإعادة التركيب. على سبيل المثال، عند الإيقاف المؤقت على عنصر قابل للإنشاء، يمكن لبرنامج تصحيح الأخطاء أن ستخبرك بالضبط بالمعلمات التي "تغيرت" أو ظلّت "بدون تغيير"، لكي تتمكن من التحقيق بفعالية أكبر في سبب إعادة التركيب.

النسخ المطابق للجهاز

يمكنك الآن عكس أجهزتك الفعلية في نافذة الأجهزة قيد التشغيل في "استوديو Android". من خلال بث محتوى شاشة جهازك مباشرةً إلى "استوديو Android" يمكنك تنفيذ إجراءات شائعة مثل بدء تشغيل التطبيقات والتفاعل معها، تدوير الشاشة، وطي الهاتف وفتحه، وتغيير مستوى الصوت، من بيئة التطوير المتكاملة في "استوديو YouTube" نفسها

النسخ المطابق للجهاز متاح دائمًا عند وجود أجهزة متصلة جهاز كمبيوتر به ميزة USB أو ميزة "تصحيح الأخطاء اللاسلكي". يمكنك البدء والتوقف النسخ المطابق باستخدام نافذة الأجهزة قيد التشغيل أو مدير الأجهزة (عرض > نوافذ الأدوات > مدير الأجهزة). يمكنك أيضًا تخصيص وقت تفعيل النسخ المطابق للجهاز في إعداداته (الإعدادات > الأدوات > النسخ المطابق للجهاز).

واجهة مستخدم الأجهزة قيد التشغيل

المشاكل المعروفة

قد لا يتمكن بعض الأجهزة من التشفير بمعدل نقل بيانات كافٍ لدعم النسخ المطابق للجهاز. في هذه الحالات، قد ترى خطأ في قسم تشغيل الأجهزة بالإضافة إلى السجلّات المشابهة لما هو موضّح أدناه.

2023-06-01 15:32:22,675 [  56094]   WARN - ScreenSharingAgent Samsung SM-A045F API 33 - Too many video encoder errors:
2023-06-01 15:32:22,676 [  56095]   WARN - ScreenSharingAgent Samsung SM-A045F API 33 - encoder: c2.android.vp8.encoder
2023-06-01 15:32:22,676 [  56095]   WARN - ScreenSharingAgent Samsung SM-A045F API 33 - mime type: video/x-vnd.on2.vp8
2023-06-01 15:32:22,676 [  56095]   WARN - ScreenSharingAgent Samsung SM-A045F API 33 - max resolution: 640x640
2023-06-01 15:32:22,676 [  56095]   WARN - ScreenSharingAgent Samsung SM-A045F API 33 - min resolution: 2x2
2023-06-01 15:32:22,676 [  56095]   WARN - ScreenSharingAgent Samsung SM-A045F API 33 - alignment: 2x2
2023-06-01 15:32:22,676 [  56095]   WARN - ScreenSharingAgent Samsung SM-A045F API 33 - max frame rate: 960
2023-06-01 15:32:22,676 [  56095]   WARN - ScreenSharingAgent Samsung SM-A045F API 33 - max frame rate for 288x640: 960
2023-06-01 15:32:22,870 [  56289]   WARN - ScreenSharingAgent Samsung SM-A045F API 33 - max bitrate: 20000000
2023-06-01 15:32:22,871 [  56290]   WARN - ScreenSharingAgent Samsung SM-A045F API 33 - terminated with code 1

إشعار الخصوصية

استنادًا إلى إعدادات النسخ المطابق للجهاز، يمكن بدء تشغيل "استوديو Android" تلقائيًا النسخ المطابق للجهاز لأي جهاز متصل أو مقترن. قد يؤدي هذا إلى بيان الإفصاح عن المعلومات للأجهزة المرتبطة بالأمر adb tcpip لأن معلومات النسخ المطابق والأوامر يتم تمريرها إلى ملفات غير مشفرة . بالإضافة إلى ذلك، يستخدم "استوديو Android" قناة غير مشفّرة للتواصل مع خادم adb، حتى يمكن اعتراض النسخ المطابق للمعلومات من قبل المستخدمين الآخرين على جهازك المضيف.

إعادة توجيه إدخال الجهاز

يمكنك الآن تفعيل ميزة إعادة التوجيه الشفاف لمدخلات أجهزة محطة العمل، مثل الماوس ولوحة المفاتيح، إلى جهاز مادي وافتراضي متصل. إلى لتفعيل إعادة التوجيه الشفاف، انقر على إدخال الجهاز للجهاز المستهدف في نافذة الأجهزة قيد التشغيل.

إدارة الأجهزة مباشرةً من نافذة "الأجهزة قيد التشغيل"

يمكنك الآن بدء تشغيل جهاز Android افتراضي (AVD)، أو بدء النسخ المطابق الجهاز، مباشرةً من نافذة الأجهزة قيد التشغيل من خلال النقر على رمز + واختيار جهاز. لإيقاف متوسّط مدة المشاهدة أو النسخ المطابق لمحتوى الجهاز، أغلق علامة تبويب الجهاز.

القائمة المنسدلة "الأجهزة" من "الأجهزة قيد التشغيل"

أداة فحص التخطيطات المضمّنة

بدءًا من Android Studio Hedgehog Canary 2، يمكنك تشغيل أداة فحص التنسيق مباشرةً في صفحة نافذة أداة تشغيل الأجهزة. تحافظ هذه الميزة التجريبية على نسبة العرض إلى الارتفاع في الشاشة. ويساعد في تنظيم سير عمل تصحيح أخطاء واجهة المستخدم في نافذة أداة واحدة. ضِمن وضع التضمين، يمكنك إظهار العرض الهرمي، وفحص خصائص كل وعرض والوصول إلى الميزات الأخرى الشائعة لـ Layout Inspector (عارض التخطيط). للوصول إلى المجموعة الكاملة من الخيارات، فلا تزال بحاجة إلى تشغيل "Layout Inspector" (عارض التخطيط) في نافذة مستقلة (ملف > الإعدادات > تجريبي > أداة فحص التنسيق على نظام التشغيل Windows أو استوديو Android > الإعدادات > تجريبي > Layout Inspector (أداة فحص التنسيق) على نظام التشغيل macOS).

هناك قيد في Layout Inspector (عارض التخطيطات) المضمّن هو لا يتوفَّر الوضع الثلاثي الأبعاد إلا في اللقطات:

لمساعدتنا في تحسين Layout Inspector (عارض التخطيطات) المضمّن، يرجى إرسال تعليقاتكم.

تحسينات على واجهة المستخدم الجديدة

تشير رسالة الأشكال البيانية واجهة مستخدم جديدة لـ "استوديو Android" إضفاء مظهر أكثر أناقة وحداثة على "استوديو YouTube" بيئة التطوير المتكاملة (IDE). لقد استمعنا إلى ملاحظاتكم حتى الآن وأصلحنا المشاكل المتعلقة الميزات التالية في Android Studio Hedgehog:

  • وضع الضغط المكثف
  • دعم التقسيم عموديًا أو أفقيًا
  • علامات تبويب المشروع على نظام التشغيل macOS
  • إصلاحات في "وضع عدم تشتيت الانتباه"
  • الإعدادات المتقدمة لعرض إجراءات نافذة الأدوات دائمًا

تحديثات "مساعد ترقية حِزم تطوير البرامج (SDK)"

يوفّر مساعد ترقية حزمة تطوير البرامج (SDK) خطوات المعالج خطوة بخطوة لمساعدتك في targetSdkVersion والترقيات. في ما يلي التعديلات التي تم إجراؤها على "مساعد ترقية SDK" في "استوديو Android" القنفذ:

  • الاطّلاع على التغييرات التي قد تؤدي إلى أعطال في الترقية إلى Android 14
  • تمت إضافة فلاتر مدى الصلة بموضوع البحث لإزالة بعض الخطوات غير الضرورية.
  • بالنسبة إلى بعض التغييرات، عليك تحديد موضع التغييرات بالضبط في الرمز

إيقاف تحسين الإصدار لمستوى واجهة برمجة التطبيقات المستهدَف فقط

يمكنك الآن إيقاف تحسين بيئة التطوير المتكاملة (IDE) لمستوى واجهة برمجة التطبيقات للجهاز المستهدَف. من يعمل "استوديو Android" تلقائيًا على تقليل إجمالي وقت التصميم عن طريق تخصيص لمستوى واجهة برمجة التطبيقات للجهاز المستهدف الذي تنشر المحتوى عليه. لتشغيل هذا الميزة غير مفعّلة، انتقِل إلى ملف > الإعدادات > تجريبي (استوديو Android > الإعدادات > ميزة تجريبية على نظام التشغيل macOS) وأزِل العلامة من المربّع بجانب تحسين الإصدار المستهدَف مستوى واجهة برمجة التطبيقات للجهاز فقط. يُرجى العلم أنّ إيقاف تحسين الإصدار هذا قد لزيادة وقت الإنشاء.

[نظام التشغيل Windows فقط] تقليل تأثير برامج مكافحة الفيروسات في سرعة الإصدار

تُعلِمك أداة "تحليل الإصدار" بما إذا كان هناك برامج لمكافحة الفيروسات تؤثر على إصدارك. أدائه. يمكن أن يحدث هذا إذا كانت برامج مكافحة الفيروسات، مثل Windows Defender، فحصًا فوريًا للأدلة المستخدمة بواسطة Gradle. أداة تحليل الإصدار قائمة بالأدلة لاستبعادها من الفحص النشط سيقدّم لك رابطًا لإضافته إلى Windows Defender إن أمكن. قائمة استبعاد المجلدات.

لم تعُد مشاريع أداة تطوير Android في Eclipse متاحة

لا يدعم Android Studio Hedgehog والإصدارات الأحدث استيراد Eclipse ADT. مماثلة. لا يزال بإمكانك فتح هذه المشاريع، ولكن لم تعُد. المعروفة باسم مشاريع Android. إذا كنت بحاجة إلى استيراد هذا النوع من المشاريع يمكنك استخدام إصدار سابق من "استوديو Android". إذا كان هناك إصدار معيّن من Android يتعذّر على "استوديو YouTube" استيراد مشروعك، يمكنك تجربته باستخدام إصدار سابق. وبعد تحويل المشروع إلى مشروع Android باستخدام السابقة من Android Studio، يمكنك استخدام مساعد ترقية AGP للعمل في هذا المشروع باستخدام أحدث إصدار من "استوديو Android".

استخدام أجهزة مركز الاختبار الافتراضي لمنصة Firebase مع الأجهزة المُدارة من خلال نظام Gradle

عند استخدام AGP 8.2.0-alpha03 أو الإصدارات الأحدث، يمكنك تشغيل الآلات الآلية الاختبارات على نطاق واسع في أجهزة مركز الاختبار الافتراضي لمنصة Firebase في حال باستخدام أجهزة مُدارة من خلال Gradle. مركز الاختبار الافتراضي يتيح لك إجراء الاختبارات في الوقت نفسه على مجموعة واسعة من أجهزة Android مادي وافتراضي. يتم إجراء هذه الاختبارات في مراكز بيانات Google بعيدة. مع من أجهزة Gradle المُدارة (GMD)، يمكن الآن لنظام التصميم إدارة إجراء اختبارات على أجهزة Test Lab هذه بناءً على الإعدادات في لملفات Gradle الخاصة بالمشروع.

بدء استخدام أجهزة Firebase Test Lab المُدارة من خلال نظام Gradle

توضِّح الخطوات التالية كيفية بدء استخدام أجهزة مركز الاختبار الافتراضي لمنصة Firebase مع GMD. تجدر الإشارة إلى أنّ هذه الخطوات تستخدم gcloud CLI لتوفير بيانات اعتماد المستخدم، وهي قد لا ينطبق على جميع بيئات التطوير. لمزيد من المعلومات حول ما عملية المصادقة لاستخدامها لتلبية احتياجاتك، راجع طريقة عمل بيانات الاعتماد التلقائية للتطبيق

  1. لإنشاء مشروع على Firebase، انتقِل إلى صفحة وحدة تحكُّم Firebase: (يُرجى النقر.) أضِف مشروعًا واتّبِع التعليمات التي تظهر على الشاشة لإنشاء مشروع. تذكّر رقم تعريف مشروعك.

  2. لتثبيت واجهة سطر الأوامر في Google Cloud، اتبع الخطوات الواردة في تثبيت gcloud CLI
  3. اضبط بيئتك المحلية.
    1. الربط بمشروع Firebase في gcloud:
        gcloud config set project FIREBASE_PROJECT_ID
        
    2. السماح باستخدام بيانات اعتماد المستخدم للوصول إلى واجهة برمجة التطبيقات. ننصحك بما يلي: عن طريق تمرير ملف JSON لحساب الخدمة إلى Gradle باستخدام DSL في النص البرمجي للإصدار على مستوى الوحدة:

      Kotlin

        firebaseTestLab {
          ...
          serviceAccountCredentials.set(file(SERVICE_ACCOUNT_JSON_FILE))
        }
        

      Groovy

        firebaseTestLab {
          ...
          serviceAccountCredentials = file(SERVICE_ACCOUNT_JSON_FILE)
        }
        

      بدلاً من ذلك، يمكنك التفويض يدويًا باستخدام الوحدة الطرفية التالية :

        gcloud auth application-default login
        
    3. اختياري: أضِف مشروع Firebase كمشروع الحصة. هذه الخطوة مطلوبة فقط إذا تجاوزت الحصول على حصة بدون تكلفة لبرنامج Test Lab

        gcloud auth application-default set-quota-project FIREBASE_PROJECT_ID
        
  4. تفعيل واجهات برمجة التطبيقات المطلوبة

    في جلسة المعمل، صفحة مكتبة واجهة برمجة التطبيقات Google Developers Console، تفعيل Cloud Testing API أو واجهة برمجة التطبيقات لنتائج أداة Cloud Tool عن طريق كتابة أسماء واجهات برمجة التطبيقات هذه في مربع البحث أعلى وحدة التحكم، ثم النقر على تفعيل واجهة برمجة التطبيقات في صفحة النظرة العامة لكل واجهة برمجة تطبيقات.

  5. اضبط مشروع Android.

    1. أضِف المكوّن الإضافي لمنصة Firebase Test Lab إلى النص البرمجي للإنشاء ذي المستوى الأعلى.

      Kotlin

        plugins {
          ...
          id("com.google.firebase.testlab") version "0.0.1-alpha05" apply false
        }
        

      Groovy

        plugins {
          ...
          id 'com.google.firebase.testlab' version '0.0.1-alpha05' apply false
        }
        
    2. تفعيل أنواع الأجهزة المخصّصة في ملف gradle.properties:

        android.experimental.testOptions.managedDevices.customDevice=true
        
    3. أضِف المكوّن الإضافي Firebase Test Lab إلى النص البرمجي للإصدار على مستوى الوحدة:

      Kotlin

        plugins {
          ...
          id "com.google.firebase.testlab"
        }
        

      Groovy

        plugins {
          ...
          id 'com.google.firebase.testlab'
        }
        

    إنشاء اختبارات وتنفيذها على جهاز Firebase Test Lab تديره منصّة Gradle

    يمكنك تحديد جهاز Firebase Test Lab لكي تستخدمه Gradle في اختبار التطبيق في نص الإنشاء على مستوى الوحدة. ينشئ نموذج التعليمات البرمجية التالي هاتف Pixel 3 يعمل بالمستوى 30 من واجهة برمجة التطبيقات كجهاز اختباري مُدار من خلال Gradle يُعرف باسم ftlDevice تتوفر المجموعة firebaseTestLab {} عند تطبيق com.google.firebase.testlab المكوّن الإضافي إلى الوحدة. الحد الأدنى المتاح إصدار المكوّن الإضافي لنظام Gradle المتوافق مع Android هو 8.2.0-alpha01.

    Kotlin

    firebaseTestLab {
      managedDevices {
        create("ftlDevice") {
          device = "Pixel3"
          apiLevel = 30
        }
      }
      ...
    }
    

    Groovy

    firebaseTestLab {
      managedDevices {
        ftlDevice {
          device = "Pixel3"
          apiLevel = 30
        }
      }
      ...
    }
    

    لإجراء اختباراتك باستخدام أجهزة Test Lab المُدارة في نظام Gradle والتي قمت بإعدادها، استخدم الأمر التالي. يشير "device-name" إلى اسم الجهاز الذي تم ضبط إعداداته من خلاله. فالنص البرمجي لإنشاء Gradle، مثل ftlDevice وBuildVariant هو الإصدار نسخة من تطبيقك تريد اختبارها. لاحظ أن Gradle لا تجري اختبارات في موازية أو تتوافق مع تهيئات Google Cloud CLI الأخرى لأجهزة Test Lab.

    في نظام التشغيل Windows:

    gradlew device-nameBuildVariantAndroidTest
    

    على نظام التشغيل Linux أو macOS:

    ./gradlew device-nameBuildVariantAndroidTest
    

    يتضمن ناتج الاختبار مسارًا إلى ملف HTML يحتوي على تقرير الاختبار. إِنْتَ استيراد نتائج الاختبار إلى "استوديو Android" لمزيد من التحليل من خلال النقر على تشغيل > سجلّ الاختبارات في بيئة التطوير المتكاملة

    إنشاء اختبارات وتنفيذها على مجموعة أجهزة

    لتوسيع نطاق الاختبار، أضِف عدة أجهزة مركز الاختبار الافتراضي لمنصة Firebase مُدارة من خلال نظام Gradle إلى لمجموعة أجهزة ثم إجراء الاختبارات عليها جميعًا من خلال أمر واحد. قولك لديهم أجهزة متعددة تم إعدادها على النحو التالي:

    firebaseTestLab {
      managedDevices {
        create("GalaxyS23Ultra") { ... }
        create("GalaxyZFlip3") { ... }
        create("GalaxyZFold3") { ... }
        create("GalaxyTabS2") { ... }
      }
    }
    

    لإضافتهما إلى مجموعة أجهزة تُسمى samsungGalaxy، يمكنك استخدام مجموعة الأجهزة groups {}:

    firebaseTestLab {
      managedDevices {...}
    }
    
    android {
      ...
      testOptions {
        managedDevices {
          groups {
            create("samsungGalaxy") {
              targetDevices.add(devices["GalaxyS23Ultra"])
              targetDevices.add(devices["GalaxyZFlip3"])
              targetDevices.add(devices["GalaxyZFold3"])
              targetDevices.add(devices["GalaxyTabS3"])
            }
          }
        }
      }
    }
    

    لإجراء اختبارات على جميع الأجهزة في مجموعة الأجهزة، استخدِم الأمر التالي:

    في نظام التشغيل Windows:

    gradlew group-nameGroupBuildVariantAndroidTest
    

    على نظام التشغيل Linux أو macOS:

    ./gradlew group-nameGroupBuildVariantAndroidTest
    

    تحسين عمليات إجراء الاختبارات باستخدام التقسيم الذكي

    أصبح الاختبار على أجهزة Test Lab التي تديرها Gradle يتوافق مع التقسيم الذكي الآن. ذكي يوزّع التقسيم تلقائيًا اختباراتك على الأجزاء بحيث يصبح كل جزء منها في الوقت نفسه تقريبًا، مما يقلل من جهود التخصيص اليدوي والمدة الإجمالية لتشغيل الاختبار. تستخدم عملية التقسيم الذكي لسجلّ الاختبار أو المعلومات بشأن المدة التي استغرقتها الاختبارات في السابق لتوزيع الاختبارات في الطريقة المثلى. لاحظ أنك تحتاج إلى الإصدار 0.0.1-alpha05 من المكوّن الإضافي Gradle لمنصة Firebase Test Lab لاستخدام التقسيم الذكي.

    لتفعيل التقسيم الذكي، يجب تحديد مقدار الوقت اللازم للاختبارات في كل جزء. يستغرقها المشروع. ويجب ضبط المدة الزمنية للجزء المستهدف على خمسة على الأقل دقائق أقل من timeoutMinutes لتجنُّب موضع الأجزاء قبل أن تنتهي الاختبارات.

    firebaseTestLab {
      ...
      testOptions {
        targetedShardDurationMinutes = 2
      }
    }
    

    لمعرفة مزيد من المعلومات، يُرجى الاطّلاع على خيارات DSL الجديدة.

    تعديل DSL لأجهزة Firebase Test Lab المُدارة من خلال نظام Gradle

    هناك المزيد من خيارات DSL التي يمكنك ضبطها لمساعدتك في تخصيص عمليات إجراء الاختبارات أو الانتقال من الحلول الأخرى التي قد تستخدمها بالفعل. الاطّلاع على بعض هذه الخيارات كما هو موضح في مقتطف الرمز التالي.

    firebaseTestLab {
      ...
    
      /**
       * A path to a JSON file that contains service account credentials to access to
       * a Firebase Test Lab project.
       */
      serviceAccountCredentials.set(file("your_service_account_credentials.json"))
    
    
      testOptions {
        fixture {
          /**
           * Whether to grant permissions on the device before tests begin.
           * Available options are "all" or "none".
           *
           * Default value is "all".
           */
          grantedPermissions = "all"
    
          /**
           * Map of files to push to the device before starting the test.
           *
           * The key is the location on the device.
           * The value is the location of the file, either local or in Google Cloud.
           */
          extraDeviceFiles["/sdcard/dir1/file1.txt"] = "local/file.txt"
          extraDeviceFiles["/sdcard/dir2/file2.txt"] = "gs://bucket/file.jpg"
    
          /**
           * The name of the network traffic profile.
           *
           * Specifies network conditions to emulate when running tests.
           *
           * Default value is empty.
           */
          networkProfile = "LTE"
        }
    
        execution {
          /**
           * The maximum time to run the test execution before cancellation,
           * measured in minutes. Does not include the setup or teardown of device,
           * and is handled server-side.
           *
           * The maximum possible testing time is 45 minutes on physical devices
           * and 60 minutes on virtual devices.
           *
           * Defaults to 15 minutes.
           */
           timeoutMinutes = 30
    
          /**
           * Number of times the test should be rerun if tests fail.
           * The number of times a test execution should be retried if one
           * or more of its test cases fail.
           *
           * The max number of times is 10.
           *
           * The default number of times is 0.
           */
          maxTestReruns = 2
    
          /**
           * Ensures only a single attempt is made for each execution if
           * an infrastructure issue occurs. This doesn't affect `maxTestReruns`.
           * Normally, two or more attempts are made by Firebase Test Lab if a
           * potential infrastructure issue is detected. This is best enabled for
           * latency sensitive workloads. The number of execution failures might be
           * significantly greater with `failFast` enabled.
           *
           * Defaults to false.
           */
          failFast = false
    
          /**
           * The number of shards to split the tests across.
           * 
           * Default to 0 for no sharding.
           */
          numUniformShards = 20
    
          /**
          * For smart sharding, the target length of time each shard should takes in
          * minutes. Maxes out at 50 shards for physical devices and 100 shards for
          * virtual devices.
          *
          * Only one of numUniformShards or targetedShardDurationMinutes can be set.
          *
          * Defaults to 0 for no smart sharding.
          */
          targetedShardDurationMinutes = 15
        }
    
        results {
          /**
           * The name of the Google storage bucket to store the test results in.
           *
           * If left unspecified, the default bucket is used.
           *
           * Please refer to Firebase Test Lab permissions for required permissions
           * for using the bucket.
           */
          cloudStorageBucket = "bucketLocationName"
    
          /**
           * Name of test results for the Firebase console history list.
           * All tests results with the same history name are grouped
           * together in the Firebase console in a time-ordered test history list.
           *
           * Defaults to the application label in the APK manifest in Flank/Fladle.
           */
          resultsHistoryName = "application-history"
    
          /**
           * List of paths to copy from the test device's storage to the test
           * results folder. These must be absolute paths under /sdcard or
           * /data/local/tmp.
           */
          directoriesToPull.addAll(
            "/sdcard/path/to/something"
          )
    
          /**
           * Whether to enable video recording during the test.
           *
           * Disabled by default.
           */
          recordVideo = false
    
          /**
           * Whether to enable performance metrics. If enabled, monitors and records
           * performance metrics such as CPU, memory, and network usage.
           *
           * Defaults to false.
           */
          performanceMetrics = true
        }
      }
    }