Cuttlefish یک دستگاه مجازی اندروید قابل تنظیم است که میتواند هم از راه دور (با استفاده از سرویسهای ابری شخص ثالث مانند Google Cloud Engine) و هم به صورت محلی (روی دستگاههای لینوکس x86 و ARM64) اجرا شود.
اهداف ده پا
- توسعهدهنده پلتفرم و اپلیکیشن را از وابستگی به سختافزار فیزیکی برای توسعه و اعتبارسنجی تغییرات کد رها کنید.
- با حفظ هماهنگی نزدیک با چارچوب اصلی، رفتار مبتنی بر چارچوب یک دستگاه واقعی را با تمرکز بر وفاداری بالا تکرار کنید.
- پشتیبانی از تمام سطوح API پس از ۲۸.
- ارائه سطح ثابتی از عملکرد در سطوح مختلف API، همسو با رفتار روی سختافزار فیزیکی.
فعال کردن مقیاس:
- امکان اجرای موازی چندین دستگاه را فراهم کنید.
- اجرای تست همزمان را با دقت بالا و هزینه ورودی کمتر امکانپذیر میسازد.
یک دستگاه قابل تنظیم با قابلیت تنظیم فرم فاکتور، رم، پردازنده و غیره ارائه دهید.
مقایسه Cuttlefish با سایر دستگاهها
شبیهساز اندروید و Cuttlefish
شباهتهای زیادی با شبیهساز اندروید وجود دارد، اما Cuttlefish وفاداری کامل به چارچوب اندروید را تضمین میکند (چه این AOSP خالص باشد و چه یک پیادهسازی سفارشی در درخت خودتان). در برنامه دنیای واقعی، این بدان معناست که باید انتظار داشته باشید Cuttlefish به تعاملات شما در سطح سیستم عامل درست مانند یک هدف تلفن فیزیکی که با همان منبع سیستم عامل اندروید سفارشی یا خالص ساخته شده است، پاسخ دهد.
شبیهساز اندروید (Android Emulator) بر اساس کاربرد آسانسازی توسعه اپلیکیشن ساخته شده است و شامل قلابهای کاربردی زیادی برای جلب توجه توسعهدهنده اپلیکیشن اندروید است. اگر میخواهید یک شبیهساز با چارچوب اندروید سفارشی خود بسازید، این ممکن است چالشهایی را ایجاد کند. اگر به یک دستگاه مجازی نیاز دارید که نماینده کد پلتفرم/چارچوب سفارشی یا اندروید اولیه شما باشد، Cuttlefish یک گزینه مجازی ایدهآل است. این دستگاه، دستگاه استانداردی برای نمایش وضعیت فعلی توسعه AOSP است.
ده پا و دستگاه فیزیکی
تفاوتهای اصلی بین یک دستگاه مجازی Cuttlefish و دستگاه فیزیکی شما در سطح لایه انتزاعی سختافزار (HAL) و همچنین هر نرمافزاری است که با هر سختافزار سفارشی تعامل دارد. به جز پیادهسازیهای خاص سختافزاری، باید انتظار رفتار معادل عملکردی بین Cuttlefish و یک دستگاه فیزیکی را داشته باشید.
چگونه ماهی مرکب میتواند کمک کند؟
شما میتوانید با Cuttlefish درست مانند هر دستگاه اندرویدی دیگری که ممکن است برای اشکالزدایی استفاده کنید، تعامل داشته باشید. این دستگاه خود را به عنوان یک دستگاه معمولی از طریق adb ثبت میکند و میتوانید مانند یک دستگاه فیزیکی از طریق ریموت دسکتاپ با آن تعامل داشته باشید. موارد استفاده گسترده است و میتواند شامل تست برنامه، تست ساخت سیستم سفارشی و موارد دیگر باشد.
از آنجا که Cuttlefish برای وفاداری کامل به چارچوب تلاش میکند، میتواند برای آزمایش عملکردی چارچوب یا برنامههای شما که در آنها هیچ وابستگی سختافزاری فیزیکی وجود ندارد که شبیهسازی آن غیرممکن باشد، مورد استفاده قرار گیرد.
امروزه معمولاً از ماهی مرکب برای آزمایش چگونه استفاده میشود؟
برخی از کاربردهای رایج ماهی مرکب برای آزمایش عبارتند از:
- سی تی اس
- انطباق با چارچوب
- تست یکپارچهسازی مداوم
- مجموعههای تست سفارشی
آیا میتوانم Cuttlefish را در فضای ابری میزبانی کنم؟
بله، Cuttlefish به صورت بومی از Google Cloud پشتیبانی میکند و پشتیبانی از سایر پلتفرمهای ابری نیز در برنامه قرار دارد.
شروع کنید
برای راهنمایی در مورد ایجاد یک نمونه Cuttlefish مبتنی بر AOSP، به استفاده از Cuttlefish مراجعه کنید.