Android 15 จะแนะนำวิธีถ่ายภาพสแนปชอตและ กู้คืนสแนปชอตของอุปกรณ์เสมือน Cuttlefish การถ่ายภาพสแนปชอตของอุปกรณ์ Cuttlefish ช่วยให้คุณบันทึกสถานะของอุปกรณ์เป็นรูปภาพในดิสก์ได้ จากนั้นคุณจะกู้คืนสแนปชอตเพื่อเปิดอุปกรณ์ Cuttlefish ไปยัง สถานะที่บันทึกไว้ก่อนหน้านี้ได้
คุณสามารถใช้สแนปชอตในเวิร์กโฟลว์อัตโนมัติหรือเวิร์กโฟลว์ด้วยตนเองต่างๆ ได้ เมื่อ ทำตามขั้นตอนที่แก้ไขอุปกรณ์ คุณสามารถถ่ายภาพรวมของ อุปกรณ์เพื่อให้แน่ใจว่าคุณสามารถกู้คืนอุปกรณ์กลับสู่สถานะที่ระบุได้ เช่น เมื่อเรียกใช้ชุดการทดสอบที่แก้ไขสถานะของอุปกรณ์ และอาจทำให้เกิดปัญหาหรือความไม่เสถียรในการทดสอบต่อไป คุณสามารถถ่ายภาพรวมเพื่อให้คืนค่าอุปกรณ์เป็นสถานะที่บันทึกไว้หลังจากการทดสอบ เพื่อให้มั่นใจว่าการทดสอบครั้งต่อๆ ไปจะทำงานได้อย่างราบรื่น
อีกตัวอย่างหนึ่งของเวิร์กโฟลว์ที่สแนปชอตมีประโยชน์คือเมื่อทดสอบ ลักษณะการทำงานของแอป เมื่อทดสอบลักษณะการทำงานของแอปตามชุด การดำเนินการ คุณสามารถถ่ายสแนปชอตระหว่างการดำเนินการขณะที่แอปกำลังทำงาน เพื่อให้คุณกู้คืนไปยังสแนปชอตนั้นได้โดยไม่ต้องรีสตาร์ทตั้งแต่ เริ่มต้น เช่น หากการเปิดตัวเกมใช้เวลานาน คุณ สามารถถ่ายภาพรวมหลังจากไปถึงเมนูหลักเพื่อกู้คืน อุปกรณ์ไปยังสถานะดังกล่าวได้โดยไม่ต้องรอเวลาเปิดตัว
ถ่ายสแนปชอตของอุปกรณ์ Cuttlefish
เมื่อถ่ายภาพรวมของอุปกรณ์ จะต้องระงับอุปกรณ์ Cuttlefish เพื่อให้แน่ใจว่าอุปกรณ์ Cuttlefish อยู่ในสถานะที่เสถียร เมื่ออุปกรณ์ ถูกระงับ ระบบจะหยุด vCPU และอุปกรณ์ทั้งหมด และบัฟเฟอร์ทั้งหมดจะพุช สถานะไปยัง VM จากนั้นสแนปชอตจะบันทึกสถานะ 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_path
: เส้นทางที่ระบุซึ่งจะสร้างโฟลเดอร์ใหม่ พร้อมสแนปชอต
cvd snapshot_take --force --auto_suspend \ --snapshot_path=PATH
กู้คืนอุปกรณ์ Cuttlefish
เมื่อกู้คืนสแนปชอตของอุปกรณ์ Cuttlefish คุณต้องหยุดอินสแตนซ์ Cuttlefish ที่ใช้ถ่ายสแนปชอต หากหยุดอินสแตนซ์แล้ว คุณไม่จำเป็นต้องดำเนินการใดๆ เพิ่มเติมและสามารถกู้คืนข้อมูลจาก Snapshot ได้
หากต้องการกู้คืนสแนปชอตของอุปกรณ์ 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
ตรวจสอบฟีเจอร์สแนปชอต/การกู้คืน
คุณตรวจสอบความถูกต้องของฟีเจอร์สแนปชอต/กู้คืนได้โดยเรียกใช้การทดสอบต่อไปนี้
atest SnapshotTest