ב-Android 15 נוספה האפשרות לצלם תמונת מצב ולשחזר תמונת מצב של מכשיר וירטואלי של Cuttlefish. צילום תמונה של מכשיר Cuttlefish מאפשר לשמור את מצב המכשיר בתמונה בדיסק. לאחר מכן תוכלו לשחזר את התמונה כדי להפעיל מכשיר Cuttlefish במצב השמירה הקודם.
אפשר להשתמש בתמונות מצב בתהליכי עבודה שונים, אוטומטיים או ידניים. כשמבצעים הליך שמשנה את המכשיר, אפשר לצלם תמונת מצב של המכשיר כדי לוודא שאפשר לשחזר את המכשיר למצב מסוים. לדוגמה, כשמריצים חבילות של בדיקות שמשנות את מצב המכשיר ועלולות לגרום לבעיות או לחוסר יציבות בבדיקות הבאות, אפשר לצלם תמונת מצב כדי לשחזר את המכשיר למצב שמור אחרי בדיקה, וכך לוודא שהבדיקות הבאות יפעלו בצורה חלקה.
דוגמה נוספת לתרחיש שבו צילומי מצב שימושיים היא בדיקת ההתנהגות של אפליקציה. כשבודקים את ההתנהגות של אפליקציה על סמך סדרה של פעולות, אפשר לצלם תמונת מצב בין הפעולות בזמן שהאפליקציה פועלת, כדי שתוכלו לשחזר את תמונת המצב הזו בלי שתצטרכו להפעיל מחדש מההתחלה. לדוגמה, אם הפעלת משחק כרוכה בזמן אתחול ארוך, אפשר לצלם תמונת מצב אחרי שמגיעים לתפריט הראשי כדי לשחזר את המכשיר למצב הזה ולדלג על זמן האתחול.
צילום תמונת מצב של מכשיר Cuttlefish
כשמצלמים תמונה של מכשיר, צריך להשהות את מכשיר Cuttlefish כדי לוודא שהוא במצב יציב. כשהמכשיר מושהה, כל המעבדים הווירטואליים והמכשירים מופסקים, וכל המאגרים מעבירים את המצב שלהם למכונה הווירטואלית. לאחר מכן, התמונה תישמר בדיסק בתיקיית יעד שצוינה, ותכלול את מצב ה-vCPU, הזיכרון ומצב המכשיר.
אין תמיכה ב-VirtiosFS, ולכן צריך להשבית אותו כשמצלמים תמונת מצב. כדי להשבית את VirtioFS, מעבירים את הארגומנט --enable_virtiofs=false כשמריצים את cvd create או cvd start.
רק מצב ה-GPU של SwiftShader (guest_swiftshader) נתמך בצילום תמונות. אין תמיכה במצבי גרפיקה מואצת אחרים.
בשלבים הבאים מוסבר איך להפעיל מכשיר Cuttlefish וליצור תמונת מצב.
הפעלת מכשיר, תוך השבתת VirtioFS. (אחרי זה אפשר להשתמש במכשיר).
cvd create --enable_virtiofs=false --gpu_mode=guest_swiftshaderמריצים את הפקודה
cvd snapshot_takeעם הדגלים הבאים כדי ליצור תמונת מצב:
--force: אם קיימת תיקייה בנתיב של התמונה, הדגל הזה מבטיח שהתיקייה הקיימת תימחק ותיצור תיקייה חדשה בנתיב של התמונה, שתכיל את התמונה
--auto_suspend: משעה את המכשיר לפני צילום ה-snapshot ומפעיל אותו מחדש אחרי הצילום.
--snapshot_path: הנתיב שצוין שבו נוצרת תיקייה חדשה עם ה-snapshot.
cvd snapshot_take --force --auto_suspend \ --snapshot_path=PATH
שחזור מכשיר Cuttlefish
כשמשחזרים תמונת מצב של מכשיר Cuttlefish, צריך לעצור את מופע Cuttlefish שעבורו צולמה תמונת המצב. אם המכונה כבר הופסקה, לא נדרשת פעולה נוספת ואפשר לשחזר את התמונה.
כדי לשחזר תמונת מצב של מכשיר Cuttlefish, מפעילים מכשיר באמצעות cvd create
וכוללים את הנתיב של תמונת המצב. אם מספר מופע הבסיס של מכשיר Cuttlefish שבו צולמה התמונה שונה ממספר מופע הבסיס של מופע Cuttlefish הנוכחי, צריך להעביר את מספר מופע הבסיס באמצעות הדגל --base_instance_num.
cvd create --snapshot_path=PATH \
--base_instance_num=IDהשעיה של מכשיר Cuttlefish
אפשר להשהות מכשיר Cuttlefish בלי לצלם תמונת מצב (לא נעשה שימוש בנפח האחסון כדי לשמור את המצב). כדי להשעות מכשיר Cuttlefish, מריצים את הפקודה:
cvd suspendהמשך העבודה במכשיר Cuttlefish
כדי להפעיל מחדש מכשיר Cuttlefish שהושעה, מריצים את הפקודה:
cvd resumeאימות התכונה Snapshot/Restore
כדי לאמת את התכונה 'תמונת מצב/שחזור', אפשר להריץ את הבדיקה הבאה:
atest SnapshotTest