أجهزة Android الافتراضية في Cuttlefish

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

أهداف حبّار البحر

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

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

مقارنة Cuttlefish بالأجهزة الأخرى

Cuttlefish وAndroid Emulator

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

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

Cuttlefish والجهاز الفعلي

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

كيف يمكن أن يساعدك Cuttlefish؟

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

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

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

تشمل بعض التطبيقات الشائعة لاستخدام Cuttlefish في الاختبار ما يلي:

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

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

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

البدء

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