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

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

יעדי דיונון

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

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

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

דיונון ו-Android

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

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

דיונון ומכשיר פיזי

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

איך דיונון יכול לעזור?

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

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

איך הדיונון משמש כיום לבדיקות?

הנה כמה יישומים נפוצים של דיונון לצורך בדיקה:

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

האם אפשר לארח דיונון בענן?

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

שנתחיל?

למידע נוסף על יצירת מכונת דיונון על סמך AOSP, ראו שימוש בדיונון.