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

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

Cuttlefish goals

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

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

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

يقارن هذا القسم جهاز Cuttlefish بالأجهزة الأخرى.

‫Cuttlefish وAndroid Emulator

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

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

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

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

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

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

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

طريقة استخدام Cuttlefish في الاختبارات اليوم

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

  • CTS
  • الامتثال لإطار العمل
  • اختبار التكامل المستمر
  • حِزم الاختبار المخصّصة

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

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

البدء

للحصول على إرشادات حول إنشاء مثيل Cuttlefish استنادًا إلى مشروع Android المفتوح المصدر (AOSP)، اطّلِع على استخدام Cuttlefish.