Cuttlefish هو جهاز Android افتراضي قابل للضبط يمكن تشغيله عن بُعد (باستخدام عروض سحابية تابعة لجهات خارجية، مثل Google Cloud Engine) ومحليًا (على أجهزة Linux x86 وARM64).
Cuttlefish goals
- إعفاء مطوّر تطبيقات النظام الأساسي من الاعتماد على أجهزة مادية لتطوير وتأكيد صحة تغييرات الرموز البرمجية
- يمكنك محاكاة السلوك المستند إلى إطار العمل لجهاز حقيقي مع التركيز على الدقة العالية من خلال الحفاظ على توافق وثيق مع إطار العمل الأساسي.
- تتوافق مع جميع مستويات واجهة برمجة التطبيقات بعد المستوى 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 استنادًا إلى مشروع Android المفتوح المصدر (AOSP)، اطّلِع على استخدام Cuttlefish.