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