أجهزة Android الافتراضية لسمكة الحبار

Cuttlefish هو جهاز Android افتراضي قابل للضبط يمكن تشغيله عن بُعد (باستخدام عروض السحابة الإلكترونية التابعة لجهات خارجية، مثل Google Cloud Engine) وعلى الجهاز (على أجهزة Linux x86 وARM64).

أهداف "حبَّار"

  • تحرير مطوّري التطبيقات والأنظمة الأساسية من الاعتماد على الأجهزة المادية لإنشاء تغييرات الرموز البرمجية والتحقّق منها
  • محاكاة السلوك المستنِد إلى إطار العمل لجهاز حقيقي مع التركيز على الدقّة العالية من خلال الحفاظ على توافق وثيق مع إطار العمل الأساسي
  • التوافق مع جميع مستويات واجهة برمجة التطبيقات بعد المستوى 28
  • توفير مستوى متسق من الوظائف عبر مستويات واجهة برمجة التطبيقات، بما يتماشى مع السلوك على الأجهزة المادية.
  • تفعيل التكبير/التصغير:

    • توفير إمكانية تشغيل أجهزة متعددة بشكل متزامن
    • إتاحة تنفيذ الاختبار المتزامن بدقة عالية وبتكلفة دخول أقل.
  • توفير جهاز قابل للضبط مع إمكانية تعديل شكل الجهاز وذاكرة الوصول العشوائي (RAM) ووحدات المعالجة المركزية (CPU) وما إلى ذلك

مقارنة أسماك الحبار بالأجهزة الأخرى

Cuttlefish ومحاكي Android

هناك العديد من أوجه التشابه مع محاكي Android، ولكن يضمن Cuttlefish التوافق الكامل مع إطار عمل Android (سواء كان AOSP خالصًا أو تنفيذًا مخصّصًا في شجرة الإصدار الخاصة بك). في التطبيقات في العالم الواقعي، يعني ذلك أنّه من المفترض أن يستجيب Cuttlefish لتفاعلاتك على مستوى نظام التشغيل تمامًا مثل استجابة هاتف فعلي مستهدَف تم إنشاؤه باستخدام مصدر نظام التشغيل Android المخصّص أو الأصلي نفسه.

تم تصميم محاكي Android استنادًا إلى حالة الاستخدام التي تتمثل في تسهيل عملية تطوير التطبيقات، وهو يحتوي على العديد من العناصر الوظيفية لجذب المستخدمين الحاليين إلى حالات الاستخدام التي يعتمدها مطوِّرو تطبيقات Android. وقد يتسبب ذلك في حدوث مشاكل إذا أردت إنشاء محاكي باستخدام إطار عمل Android المخصّص. إذا كنت بحاجة إلى جهاز افتراضي يمثل النظام الأساسي/رمز إطار العمل المخصّص أو نظام Android المبتكر، فإن تطبيق Cuttlefish هو الخيار الافتراضي المثالي. إنه الجهاز المتعارف عليه لتمثيل الحالة الحالية لتطوير AOSP.

الحبّار والجهاز المادي

تتمثل الاختلافات الأساسية بين الجهاز الافتراضي Cuttlefish والجهاز المادي في مستوى "طبقة تجريد الأجهزة" (HAL)، بالإضافة إلى أي برنامج يتفاعل مع أي أجهزة مخصّصة. باستثناء عمليات التنفيذ المتعلقة بالأجهزة، يجب أن تتوقع سلوكًا مكافئًا من الناحية الوظيفية بين الحبار والجهاز المادي.

كيف يمكن للحبار المساعدة؟

يمكنك التفاعل مع Cuttlefish تمامًا كما تتفاعل مع أي جهاز Android آخر قد تستخدمه لتصحيح الأخطاء. سيُسجِّل نفسه كجهاز عادي من خلال adb ويمكنك التفاعل معه مثل أي جهاز فعلي من خلال سطح المكتب عن بُعد. وتشمل حالات الاستخدام مجموعة واسعة من الاختبارات، مثل اختبار التطبيقات واختبار أنظمة الإصدارات المخصّصة وغير ذلك.

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

كيف يتم استخدام Cuttlefish بشكل شائع للاختبار اليوم؟

تتضمن بعض التطبيقات الشائعة لاختبار الحبار ما يلي:

  • CTS
  • الامتثال للإطار
  • اختبار الدمج المستمر
  • مجموعات اختبار مخصّصة

هل يمكنني استضافة Cuttlefish في السحابة الإلكترونية؟

نعم، تتيح أداة Cuttlefish استخدام Google Cloud بشكلٍ أصلي، ومن المخطّط أن تتيح استخدام منصّات السحابة الاصطناعي الأخرى.

البدء

للحصول على إرشادات حول إنشاء مثيل Cuttlefish استنادًا إلى AOSP، يُرجى الاطّلاع على مقالة استخدام Cuttlefish.