يصف هذا المستند أجهزة Android الافتراضية (AVD) لنظام التشغيل Test Lab، بما في ذلك المزايا والقيود المعروفة. نقدّم أيضًا اقتراحات حول كيفية اختبار تطبيقك طوال مراحل تطويره. Test Lab تتشابه أجهزة Android الافتراضية مع أجهزة Android الافتراضية في Android Studio، ولكن تم تحسينها لتعزيز الأداء من خلال الاختبار على السحابة الإلكترونية، لذا هناك بعض الاختلافات بينهما.
Test Lab أجهزة Android الافتراضية التي تنتهي بـ .arm أو (Arm) هي محاكيات متقدّمة توفّر المزايا التالية:
وقت تنفيذ الاختبار أسرع
أحجام الشاشة وكثافتها متوافقة مع أجهزة Android الافتراضية (AVD) في "استوديو Android" لضمان الاتساق
رسومات مسرَّعة متوافقة مع وحدة معالجة الرسومات
يوضّح الجدول التالي مزايا استخدام الأجهزة الافتراضية:
| المزايا | الوصف | حالات الاستخدام |
| مدى توفُّر مرتفع | يمكنك إجراء الاختبارات والحصول على نتائجها بسرعة أكبر عند استخدام الأجهزة الافتراضية. بما أنّ الأجهزة الافتراضية يتم إنشاؤها عند الطلب، تبدأ الاختبارات على الفور تقريبًا، ما يتيح التحقّق من تطبيقك بسرعة. | اختبار التحديثات الصغيرة لتطبيقك أو إجراء اختبارات الانحدار |
| فترات اختبار أطول | تتيح الأجهزة الافتراضية مدة اختبار تصل إلى 60 دقيقة. تقتصر الاختبارات على الأجهزة الفعلية على مدة اختبار تبلغ 45 دقيقة على كل جهاز. | إجراء اختبارات أطول |
| تكاليف أقل | يتم تحديد سعر الأجهزة الافتراضية بقيمة دولار أمريكي واحد في الساعة لكل جهاز افتراضي يتم استخدامه لاختبار تطبيقك. | يتم إجراء الاختبارات يوميًا باستخدام أنظمة التكامل المستمر أو قبل إدخال الرمز. لمزيد من المعلومات، يُرجى الاطّلاع على مستويات الاستخدام والحصص والأسعار في Test Lab. |
اختبار تطبيقك باستخدام الأجهزة الافتراضية
يمكنك اختبار تطبيقك باستخدام الأجهزة الافتراضية بالطريقة نفسها التي تختبره بها باستخدام الأجهزة الفعلية. يمكنك اختيار الأجهزة الافتراضية لاختباراتك عند ضبط مصفوفة تجريبية. لمزيد من المعلومات حول إجراء الاختبارات باستخدام Test Lab، يُرجى الاطّلاع على مقالة بدء الاختبار على Android باستخدام Firebase Test Lab.
عرض النماذج وواجهات برمجة التطبيقات المتوافقة
للاطّلاع على نماذج أجهزة Android الافتراضية وواجهات برمجة التطبيقات المتوافقة مع Test Lab، نفِّذ الأمر التالي:
gcloud firebase test android models list --filter=virtual
أفضل الممارسات لاختبار تطبيقك
تزيد الأجهزة الافتراضية من نطاق الخيارات المتاحة لك عند اختبار تطبيقك باستخدام Test Lab. ننصحك باتّباع أفضل الممارسات التالية لاختبار تطبيقك طوال مراحل تطويره:
استخدام محاكي "استوديو Android" أو جهاز فعلي متصل
عند تطوير تطبيقك، استخدِم محاكي "استوديو Android" أو جهازًا فعليًا متصلاً لفحص كل إصدار من أجل التحقّق الأولي. إذا كانت لديك اختبارات لقياس حالة التطبيق، يمكنك أيضًا إجراء هذه الاختبارات من استوديو Android على الأجهزة المادية أو الأجهزة الافتراضية التي يوفّرها Test Lab.
استخدام أنظمة CI مع كل تغيير في الرمز عند العمل على مشاريع مشتركة
إذا كنت تعمل على مشروع كبير، أو إذا كنت تساهم في مشاريع تتم مشاركتها باستخدام GitHub أو موقع إلكتروني مشابه، ننصحك باستخدام أنظمة التكامل المستمر (CI). اختبِر تطبيقاتك على الأجهزة الافتراضية في كل مرة يتم فيها تشغيل نظام التكامل المستمر أو قبل كل طلب سحب. لمزيد من المعلومات حول استخدام Test Lab مع أنظمة CI، يُرجى الاطّلاع على مقالة استخدام Test Lab لنظام التشغيل Android مع أنظمة التكامل المستمر.
اختبِر تطبيقك على أجهزة فعلية باستخدام Test Lab قبل طرح تحديثات مهمة للتطبيق
قبل طرح تحديثات التطبيق التي تتضمّن تغييرات كبيرة في واجهة المستخدم والوظائف، ننصحك باستخدام Test Lab لاختبار تطبيقك على الأجهزة الفعلية. سيساعد ذلك في ضمان استقرار تطبيقك وأدائه على مجموعة كبيرة من الأجهزة الفعلية الشائعة. يضمن الاختبار على الأجهزة الفعلية أيضًا تغطية الاختبار لأي وظيفة في التطبيق تعتمد على ميزات الجهاز الفعلي التي لا تتم محاكاتها بواسطة الأجهزة الافتراضية. لمزيد من المعلومات حول هذه الميزات، يُرجى الاطّلاع على القيود المعروفة.
تحديثات الأجهزة الافتراضية
يضيف فريق Android بشكل دوري صورًا جديدة للأجهزة الافتراضية، ويوقف الصور القديمة، ويعدّل الصور الحالية. نطبّق هذه التحديثات على صور أجهزتنا الافتراضية للمساعدة في ضمان إجراء الاختبارات على إصدارات Android الحديثة التي تعكس تجارب المستخدمين.
في حالات نادرة، قد تؤدي هذه التحديثات إلى تعذُّر إجراء الاختبارات بشكل غير متوقّع. عندما يكون هناك تحديث معروف قد يؤدي إلى حدوث عطل، سيتضمّن Test Lab معلومات في ملاحظات الإصدار. كأفضل ممارسة، ننصحك باستخدام أُطر عمل الاختبار، مثل Espresso، التي تتوافق مع هذه التغييرات كلما أمكن ذلك. وإذا لم يكن ذلك ممكنًا، ننصحك باستهداف الأجهزة الافتراضية التي تستخدم معالجات Arm، والتي من المتوقّع أن يتم تحديثها بشكل أقل تكرارًا.
القيود المعروفة
لا تتم حاليًا محاكاة بعض ميزات الأجهزة الفعلية من خلال الأجهزة الافتراضية، أو تتم محاكاتها مع بعض القيود. يلخص الجدول التالي الميزات غير المتوفرة حاليًا على الأجهزة الافتراضية، أو المتوفرة مع بعض القيود:
| الميزة | التفاصيل |
| واجهات التطبيق الثنائية (ABI) | لا تتوافق بعض الأجهزة مع بعض واجهات ABI. إذا كنت
تطوّر تطبيقات باستخدام Android NDK، تأكَّد من إنشاء رمز لواجهات
التطبيقات الثنائية (ABI) المتوافقة مع الأجهزة التي تستهدفها (راجِع الأجهزة
المتاحة في
Test Lab). لمزيد من المعلومات حول إدارة واجهات التطبيقات الثنائية (ABI)، راجِع واجهات التطبيقات الثنائية (ABI) في
Android.
ملاحظة: إذا تم وضع علامة "غير صالح" على اختبار في المصفوفة التجريبية، قد يحدث ذلك لأنّ تطبيقك يعتمد على رمز برمجي أصلي لا تتوافق معه واجهة ABI للجهاز. |
| أداء الرسومات | تستخدم أجهزة Nexus وPixel الافتراضية عرض الرسومات من خلال البرامج. قد ينخفض أداء التطبيقات التي تتطلّب معالجة رسومات مكثّفة. إذا كان تطبيقك يتطلّب معالجة رسومات مكثّفة، ننصحك باستخدام SmallPhone.arm أو MediumPhone.arm أو الأجهزة الفعلية بدلاً من ذلك. |
| واجهات برمجة تطبيقات الرسومات | لا يتوافق الإصدار 3.x من OpenGL ES مع الأجهزة التي تعمل بمستوى واجهة برمجة تطبيقات أقل من 29. الأجهزة الأحدث ليست متوافقة بنسبة% 100 مع واجهات برمجة التطبيقات OpenGL/Vulkan، وقد تلاحظ اختلافات بسيطة في الرسومات. |
| تطبيق "متجر Google Play" | لا يتوافق تطبيق "متجر Google Play" مع الأجهزة الافتراضية التي تستخدم معالجات Arm. |
| وظائف الواقع المعزّز (AR) | لا يمكن اختبار وظائف الواقع المعزّز (AR) على الأجهزة الافتراضية. |
| مستويات واجهة برمجة التطبيقات القديمة | لا تتوافق أجهزة Arm الافتراضية (عددها Test Lab) مع مستويات واجهة برمجة التطبيقات الأقل من 26. |