מכשירי Android וירטואליים של Cuttlefish

Cuttlefish הוא מכשיר Android וירטואלי שאפשר להגדיר אותו כך שיפעל מרחוק (באמצעות שירותי ענן של צד שלישי כמו Google Cloud Engine) ומקומי (במכונות Linux x86 ו-ARM64).

יעדים ב-Cuttlefish

  • לשחרר את פלטפורמת המפתחים ואת מפתחי האפליקציות מהתלות בחומרה פיזית כדי לפתח ולאמת שינויים בקוד.
  • הכלי משכפל את ההתנהגות של מכשיר אמיתי שמבוסס על מסגרת, עם דגש על דיוק גבוה, על ידי שמירה על התאמה הדוקה למסגרת הליבה.
  • תמיכה בכל רמות ה-API אחרי רמה 28.
  • לספק רמה עקבית של פונקציונליות ברמות שונות של API, בהתאם להתנהגות בחומרה פיזית.
  • הפעלת שינוי הגודל:

    • היכולת להפעיל כמה מכשירים במקביל.
    • הפעלה של בדיקות מקבילות ברמת דיוק גבוהה בעלות נמוכה יותר.
  • צריך לספק מכשיר שאפשר להגדיר בו את גורם הצורה, זיכרון ה-RAM, המעבדים וכו'.

השוואה בין Cuttlefish למכשירים אחרים

‫Cuttlefish ואמולטור Android

יש הרבה דמיון לאמולטור Android, אבל Cuttlefish מבטיח נאמנות מלאה למסגרת Android (בין אם מדובר ב-AOSP טהור או בהטמעה מותאמת אישית בעץ שלכם). ביישום בעולם האמיתי, המשמעות היא שצריך לצפות ש-Cuttlefish יגיב לאינטראקציות שלכם ברמת מערכת ההפעלה, בדיוק כמו טלפון פיזי שנוצר עם אותו מקור מותאם אישית או טהור של Android OS.

ה-אמולטור Android נבנה סביב תרחיש השימוש של פיתוח אפליקציות בקלות, והוא מכיל הרבה הוקים פונקציונליים שמתאימים לתרחישי השימוש של מפתחי אפליקציות ל-Android. יכול להיות שיהיו אתגרים אם תרצו ליצור אמולטור עם מסגרת Android מותאמת אישית. אם אתם צריכים מכשיר וירטואלי שייצג את הקוד של הפלטפורמה או המסגרת המותאמת אישית שלכם, או את הגרסה העדכנית ביותר של Android,‏ Cuttlefish היא אפשרות וירטואלית אידיאלית. זהו המכשיר הקנוני לייצוג המצב הנוכחי של פיתוח AOSP.

Cuttlefish ומכשיר פיזי

ההבדלים העיקריים בין מכשיר וירטואלי של Cuttlefish לבין המכשיר הפיזי שלכם הם ברמת שכבת הפשטת החומרה (HAL), וגם בכל תוכנה שמבצעת אינטראקציה עם חומרה בהתאמה אישית. מלבד יישומים ספציפיים לחומרה, אתם יכולים לצפות להתנהגות שוות ערך מבחינה פונקציונלית בין Cuttlefish לבין מכשיר פיזי.

איך Cuttlefish יכול לעזור?

אפשר לבצע פעולות ב-Cuttlefish בדיוק כמו במכשיר Android אחר שמשמש לניפוי באגים. הוא יירשם כמכשיר רגיל באמצעות adb, ותוכלו ליצור איתו אינטראקציה כמו עם מכשיר פיזי באמצעות Remote Desktop. יש מגוון רחב של תרחישי שימוש, כולל בדיקת אפליקציות, בדיקת בנייה של מערכות בהתאמה אישית ועוד.

‫Cuttlefish שואף להשיג נאמנות מלאה למסגרת, ולכן אפשר להשתמש בו לבדיקות פונקציונליות של המסגרת או של האפליקציות, במקרים שבהם אין תלות בחומרה פיזית שאי אפשר לבצע לה אמולציה.

איך משתמשים ב-Cuttlefish בדרך כלל לבדיקות היום?

דוגמאות נפוצות לשימוש ב-Cuttlefish לצורך בדיקות:

  • CTS
  • עמידה בדרישות של מסגרת
  • בדיקות אינטגרציה רציפות
  • חבילות מקרים לבדיקה בהתאמה אישית

האם אפשר לארח את Cuttlefish בענן?

כן, Cuttlefish תומך באופן מובנה ב-Google Cloud, ויש תוכניות לתמיכה בפלטפורמות ענן אחרות.

שנתחיל?

הוראות ליצירת מופע Cuttlefish שמבוסס על AOSP זמינות במאמר שימוש ב-Cuttlefish.