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