اعتبارًا من 27 آذار (مارس) 2025، ننصحك باستخدام android-latest-release
بدلاً من aosp-main
لإنشاء AOSP والمساهمة فيه. لمزيد من المعلومات، يُرجى الاطّلاع على التغييرات في AOSP.
أجهزة Android الافتراضية في Cuttlefish
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
Cuttlefish هو جهاز Android افتراضي قابل للضبط يمكن تشغيله عن بُعد
(باستخدام عروض السحابة الإلكترونية التابعة لجهات خارجية، مثل Google Cloud Engine) وعلى الجهاز (على
أجهزة Linux x86 وARM64).
أهداف "حبَّار"
مقارنة 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 بشكلٍ أصلي، ومن المخطّط أن يتيح استخدام منصّات سحابة computing
أخرى.
البدء
للحصول على إرشادات حول إنشاء مثيل Cuttlefish استنادًا إلى AOSP، يُرجى الاطّلاع على مقالة استخدام Cuttlefish.
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["# Cuttlefish virtual Android devices\n\n*Cuttlefish* is a configurable virtual Android device that can run both remotely\n(using third-party cloud offerings such as Google Cloud Engine) and locally (on\nLinux x86 and ARM64 machines).\n\nCuttlefish goals\n----------------\n\n- Free the platform and app developer from being dependent on physical hardware to develop and validate code changes.\n- Replicate the framework-based behavior of a real device with a focus on **high fidelity** by maintaining close alignment with the core framework.\n- Support all API levels after 28.\n- Provide a **consistent** level of functionality across API levels, aligned with the behavior on physical hardware.\n- Enable scale:\n\n - Provide the ability to run multiple devices in parallel.\n - Enable concurrent test execution with high fidelity at a lower cost of entry.\n- Provide a configurable device with the ability to adjust form factor, RAM,\n CPUs, etc.\n\nCompare Cuttlefish to other devices\n-----------------------------------\n\n### Cuttlefish and Android Emulator\n\nThere are many similarities with the [Android Emulator](/docs/setup/test/avd),\nbut Cuttlefish guarantees full fidelity with Android framework (whether this is\npure AOSP or a custom implementation in your own tree). In real-world\napplication, this means that you should expect Cuttlefish to respond to your\ninteractions at the OS level just like a physical phone target built with the\nsame customized or pure Android OS source.\n\nThe Android Emulator has been built around the use case of making app\ndevelopment easy, and it contains many functional hooks to appeal to the use\ncases of the Android app developer. This may present challenges if you want\nto build an emulator with your customized Android framework. If you need a\nvirtual device that will be representative of your custom platform/framework\ncode or tip-of-tree Android, then Cuttlefish is an ideal virtual option. It is\nthe canonical device for representing the current state of AOSP development.\n\n### Cuttlefish and physical device\n\nThe primary differences between a Cuttlefish virtual device and your physical\ndevice are at the hardware abstraction layer (HAL) level, as well as any\nsoftware that interacts with any custom hardware. Except for hardware-specific\nimplementations, you should expect functionally equivalent behavior between\nCuttlefish and a physical device.\n\nHow can Cuttlefish help?\n------------------------\n\nYou can interact with Cuttlefish just like you would with any other Android\ndevice that you might use for debugging. It will register itself as a normal\ndevice via adb and you can interact with it like a physical device via remote\ndesktop. The use cases are broad and can span app testing, custom system\nbuild testing and more.\n\nBecause Cuttlefish strives for full framework fidelity, it can be used for\nfunctional testing of your framework or apps where there are no\nphysical hardware dependencies that are impossible to emulate.\n\n### How is Cuttlefish commonly used for testing today?\n\nSome common applications of Cuttlefish for testing include:\n\n- CTS\n- Framework compliance\n- Continuous integration testing\n- Custom test suites\n\nCan I host Cuttlefish in the cloud?\n-----------------------------------\n\nYes, Cuttlefish natively supports Google Cloud and support for other cloud\nplatforms is planned.\n\nGet started\n-----------\n\nFor guidance on creating a Cuttlefish instance based on AOSP, see\n[Use Cuttlefish](/docs/devices/cuttlefish/get-started)."]]