דיונון: תמונת מצב ושחזור

Android 15 מציג איך לצלם תמונת מצב לשחזר תמונת מצב של מכשיר וירטואלי של דיונון. צילום תמונת מצב של מכשיר דיונון מאפשר לך לשמור את מצב המכשיר בתמונה בדיסק. לאחר מכן אפשר לשחזר את קובץ ה-snapshot כדי להעלות מכשיר דיונון את המצב הקודם שנשמר.

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

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

צילום תמונת מצב של מכשיר דיונון

כשמצלמים תמונת מצב של המכשיר, צריך להשעות את מכשיר הדיונון כדי לוודא שמכשיר הדיונון במצב יציב. כשהמכשיר מושעה, כל יחידות ה-vCPU והמכשירים מופסקים, וכל מאגרי הנתונים הזמניים דוחפים את המצב שלהם למכונה הווירטואלית. קובץ ה-snapshot שומר את מצב ה-vCPU, הזיכרון ואת מצב המכשיר לדיסק בתיקיית יעד ספציפית.

אין תמיכה ב-VirtiosFS. צריך להשבית אותו כשמצלמים תמונת מצב. שפת תרגום השבתת VirtioFS, העברת הארגומנט --enable_virtiofs=false כשמריצים את cvd start.

רק מצב GPU של SwiftShader (guest_swiftshader) נתמך עבור קובצי snapshot. מצבי גרפיקה מואצים אחרים פשוט לא נתמכים.

השלבים הבאים מתארים את תהליך ההפעלה של מכשיר דיונון ולצלם תמונת מצב.

  1. הפעלת מכשיר תוך השבתה של VirtioFS. (לאחר מכן אפשר להשתמש במכשיר).

    cvd start --enable_virtiofs=false --gpu_mode=guest_swiftshader
    
  2. כדי לצלם תמונת מצב, מריצים את cvd snapshot_take עם הדגלים הבאים:

    • --force: אם קיימת תיקייה בנתיב תמונת המצב שצוין, הדגל מבטיח שהתיקייה הקיימת תימחק, ותיקייה חדשה נוצר בנתיב קובץ ה-snapshot שמכיל את קובץ ה-snapshot.

    • --auto_suspend: המכשיר מושעה לפני צילום תמונת המצב המכשיר ממשיך לפעול לאחר צילום תמונת המצב.

    • --snapshot_path: הנתיב שצוין שבו נוצרת תיקייה חדשה עם קובץ ה-snapshot.

    cvd snapshot_take --force --auto_suspend \
    --snapshot_path=PATH
    

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

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

כדי לשחזר תמונת מצב של מכשיר דיונון, צריך להפעיל מכשיר באמצעות cvd start ולכלול את נתיב תמונת המצב. אם מספר המופע הבסיסי של הדיונון המכשיר שבו צולמה ה-snapshot של המופע הבסיסי המספר של מכונת הדיונון הנוכחית, מעבירים את המופע הבסיסי מספר באמצעות הדגל --base_instance_num.

cvd start --snapshot_path=PATH \
--base_instance_num=ID

השעיית מכשיר דיונון

ניתן להשעות מכשיר דיונון בלי ליצור קובץ snapshot (אין מקום בכונן משמש לשמירת המדינה). כדי להשעות מכשיר דיונון, מריצים את:

cvd suspend

המשך שימוש במכשיר דיונון

כדי להמשיך הפעלה של מכשיר Cuttlefish מושעה, מריצים את:

cvd resume

אימות התכונה 'תמונת מצב/שחזור'

אפשר לאמת את התכונה 'תמונת מצב' או 'שחזור' על ידי הרצת הבדיקה הבאה:

atest SnapshotTest