Cuttlefish הוא מכשיר וירטואלי מבוסס-Android שניתן להגדרה, שיכול לפעול מרחוק (באמצעות שירותי ענן של צד שלישי כמו Google Cloud Engine) ומקומי (במכונות Linux x86 ו-ARM64).
יעדים ב-Cuttlefish
- לשחרר את פלטפורמת הפיתוח ואת מפתח האפליקציה מהתלות בחומרה פיזית כדי לפתח ולאמת שינויים בקוד.
- כדי לשמור על התאמה הדוקה למסגרת הליבה, אפשר לשכפל את ההתנהגות של מכשיר אמיתי שמבוססת על מסגרת, עם דגש על נאמנות גבוהה.
- תמיכה בכל רמות ה-API אחרי רמה 28.
- לספק רמה עקבית של פונקציונליות בכל רמות ה-API, בהתאם להתנהגות בחומרה פיזית.
הפעלת שינוי הגודל:
- היכולת להפעיל כמה מכשירים במקביל.
- הפעלה של בדיקות מקבילות ברמת דיוק גבוהה בעלות נמוכה יותר.
לספק מכשיר שאפשר להגדיר בו דברים כמו גורם צורה, זיכרון RAM ומעבדים.
השוואה בין Cuttlefish למכשירים אחרים
בקטע הזה מוצגת השוואה בין Cuttlefish לבין מכשירים אחרים.
Cuttlefish ואמולטור Android
יש הרבה דמיון לאמולטור Android, אבל ל-Cuttlefish יש נאמנות מלאה ל-Android Framework (בין אם מדובר ב-AOSP טהור או בהטמעה מותאמת אישית בעץ שלכם). ביישום בעולם האמיתי, המשמעות היא שצריך לצפות ש-Cuttlefish יגיב לאינטראקציות שלכם ברמת מערכת ההפעלה, בדיוק כמו טלפון פיזי שנוצר עם אותו מקור מותאם אישית או טהור של Android OS.
אמולטור Android נבנה סביב תרחיש השימוש של פיתוח אפליקציות בקלות, והוא מכיל הרבה הוקים פונקציונליים שמתאימים לתרחישי השימוש של מפתחי אפליקציות ל-Android. זה יכול להיות בעייתי אם רוצים ליצור אמולטור עם מסגרת Android מותאמת אישית. אם אתם צריכים מכשיר וירטואלי שמייצג את הפלטפורמה או את המסגרת המותאמת אישית שלכם, או את קוד Android העדכני ביותר, Cuttlefish הוא אפשרות וירטואלית אידיאלית. Cuttlefish הוא המכשיר הקנוני לייצוג המצב הנוכחי של פיתוח AOSP.
Cuttlefish ומכשיר פיזי
ההבדלים העיקריים בין מכשיר וירטואלי של Cuttlefish לבין המכשיר הפיזי שלכם הם ברמת שכבת הפשטת החומרה (HAL), וגם בכל תוכנה שמבצעת אינטראקציה עם חומרה בהתאמה אישית. מלבד יישומים ספציפיים לחומרה, אתם יכולים לצפות להתנהגות שוות ערך מבחינה פונקציונלית בין Cuttlefish לבין מכשיר פיזי.
איך Cuttlefish יכול לעזור
אפשר לבצע פעולות ב-Cuttlefish בדיוק כמו במכשיר Android אחר שמשמש לניפוי באגים. הוא נרשם כרגיל ב-adb ואפשר ליצור איתו אינטראקציה כמו עם מכשיר פיזי באמצעות שולחן עבודה מרוחק. יש מגוון רחב של תרחישי שימוש, כולל בדיקת אפליקציות, בדיקת בנייה של מערכות בהתאמה אישית ועוד.
Cuttlefish שואף להשיג נאמנות מלאה למסגרת, ולכן אפשר להשתמש בו לבדיקות פונקציונליות של המסגרת או של האפליקציות, במקרים שבהם אין תלות בחומרה פיזית שאי אפשר לבצע לה אמולציה.
איך משתמשים ב-Cuttlefish לבדיקות היום
דוגמאות נפוצות לשימוש ב-Cuttlefish לצורך בדיקות:
- CTS
- עמידה בדרישות של מסגרת
- בדיקות אינטגרציה רציפות
- חבילות מקרים לבדיקה בהתאמה אישית
אירוח של Cuttlefish בענן
Cuttlefish תומך באופן מובנה ב-Google Cloud, ויש תוכניות לתמיכה בפלטפורמות ענן אחרות.
שנתחיל?
הוראות ליצירת מופע Cuttlefish שמבוסס על AOSP זמינות במאמר שימוש ב-Cuttlefish.