Cuttlefish هو جهاز Android افتراضي قابل للضبط يمكن تشغيله عن بُعد (باستخدام عروض السحابة الإلكترونية التابعة لجهات خارجية، مثل Google Cloud Engine) وعلى الجهاز (على أجهزة Linux x86 وARM64).
أهداف "حبَّار"
- تحرير مطوّري التطبيقات والأنظمة الأساسية من الاعتماد على الأجهزة المادية لإنشاء تغييرات الرموز البرمجية والتحقّق منها
- محاكاة السلوك المستنِد إلى إطار العمل لجهاز حقيقي مع التركيز على الدقّة العالية من خلال الحفاظ على توافق وثيق مع إطار العمل الأساسي
- التوافق مع جميع مستويات واجهة برمجة التطبيقات بعد المستوى 28
- توفير مستوى متسق من الوظائف على جميع مستويات واجهة برمجة التطبيقات، بما يتوافق مع السلوك على الأجهزة المادية
تفعيل التكبير/التصغير:
- توفير إمكانية تشغيل أجهزة متعددة بشكل متزامن
- يمكنك تفعيل تنفيذ الاختبار المتزامن بدقة عالية وبتكلفة أقل لبدء الاختبار.
توفير جهاز قابل للضبط مع إمكانية تعديل شكل الجهاز وذاكرة الوصول العشوائي (RAM) ووحدات المعالجة المركزية وغير ذلك
مقارنة Cuttlefish بالأجهزة الأخرى
Cuttlefish ومحاكي Android
هناك العديد من أوجه التشابه مع محاكي Android، ولكن يضمن Cuttlefish التوافق الكامل مع إطار عمل Android (سواء كان AOSP خالصًا أو تنفيذًا مخصّصًا في شجرة الإصدار الخاصة بك). في التطبيقات في العالم الواقعي، يعني ذلك أنّه من المفترض أن يستجيب Cuttlefish لتفاعلاتك على مستوى نظام التشغيل تمامًا مثل استجابة هاتف فعلي مستهدَف تم إنشاؤه باستخدام مصدر نظام التشغيل Android المخصّص أو الأصلي نفسه.
تم تصميم "محاكي Android" استنادًا إلى حالة الاستخدام التي تتمثل في تسهيل تطوير التطبيقات، ويحتوي على العديد من العناصر الوظيفية التي تلبي حالات استخدام مطوّري تطبيقات Android. وقد يتسبب ذلك في حدوث مشاكل إذا أردت إنشاء محاكي باستخدام إطار عمل Android المخصّص. إذا كنت بحاجة إلى جهاز افتراضي يمثّل رمز النظام الأساسي/الإطار المرجعي المخصّص أو أحدث إصدار من Android، فإنّ Cuttlefish هو الخيار المثالي. وهو الجهاز الأساسي لتمثيل الحالة الحالية لتطوير AOSP.
حبَّار وجهاز فعلي
تتمثل الاختلافات الأساسية بين الجهاز الافتراضي Cuttlefish والجهاز المادي في مستوى "طبقة تجريد الأجهزة" (HAL)، بالإضافة إلى أي برنامج يتفاعل مع أي أجهزة مخصّصة. باستثناء عمليات التنفيذ الخاصة بالأجهزة، من المفترض أن يكون السلوك متطابقًا من الناحية الوظيفية بين Cuttlefish والجهاز المادي.
كيف يمكن أن تساعدك خدمة Cuttlefish؟
يمكنك التفاعل مع Cuttlefish تمامًا كما تتفاعل مع أي جهاز Android آخر قد تستخدمه لتصحيح الأخطاء. سيُسجِّل نفسه كجهاز عادي من خلال adb ويمكنك التفاعل معه مثل أي جهاز فعلي من خلال سطح المكتب عن بُعد. وتشمل حالات الاستخدام مجموعة واسعة من الاختبارات، مثل اختبار التطبيقات واختبار أنظمة الإصدارات المخصّصة وغير ذلك.
بما أنّ Cuttlefish يسعى إلى تحقيق الدقّة الكاملة للإطار الأساسي، يمكن استخدامه للقيام باختبار وظيفي للإطار الأساسي أو التطبيقات التي لا تتضمّن تبعيات للأجهزة المادية من المستحيل محاكاتها.
كيف يتم استخدام Cuttlefish بشكل شائع للاختبار اليوم؟
تشمل بعض التطبيقات الشائعة لخدمة Cuttlefish للاختبار ما يلي:
- CTS
- الامتثال للإطار
- اختبار الدمج المستمر
- مجموعات اختبار مخصّصة
هل يمكنني استضافة Cuttlefish في السحابة الإلكترونية؟
نعم، يتيح Cuttlefish استخدام Google Cloud بشكلٍ أصلي، ومن المخطّط أن يتيح استخدام منصّات السحابة الاصطناعي الأخرى.
البدء
للحصول على إرشادات حول إنشاء مثيل Cuttlefish استنادًا إلى AOSP، يُرجى الاطّلاع على مقالة استخدام Cuttlefish.