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