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