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
พร้อม Flag ต่อไปนี้--force
: หากมีโฟลเดอร์อยู่ในเส้นทางสแนปชอตที่ระบุ Flag นี้จะลบโฟลเดอร์ที่มีอยู่และสร้างโฟลเดอร์ใหม่ในเส้นทางสแนปชอตที่มีสแนปชอต--auto_suspend
: ระงับอุปกรณ์ก่อนที่จะถ่ายภาพสแนปชอตและเปิดใช้งานอุปกรณ์อีกครั้งหลังจากถ่ายภาพสแนปชอตแล้ว--snapshot_path
: เส้นทางที่ระบุซึ่งสร้างโฟลเดอร์ใหม่พร้อมสแนปชอต
cvd snapshot_take --force --auto_suspend \ --snapshot_path=PATH
กู้คืนอุปกรณ์ Cuttlefish
เมื่อกู้คืนภาพรวมของอุปกรณ์ Cuttlefish คุณต้องหยุดอินสแตนซ์ Cuttlefish ที่ถ่ายภาพรวมไว้ หากอินสแตนซ์หยุดทำงานอยู่แล้ว ก็ไม่จำเป็นต้องดำเนินการใดๆ เพิ่มเติมและสามารถกู้คืนสแนปชอตได้
หากต้องการกู้คืนภาพรวมของอุปกรณ์ Cuttlefish ให้เปิดอุปกรณ์ด้วย cvd create
และระบุเส้นทางภาพรวม หากหมายเลขอินสแตนซ์ฐานของอุปกรณ์ Cuttlefish ที่ถ่ายสแนปชอตแตกต่างจากหมายเลขอินสแตนซ์ฐานของอินสแตนซ์ Cuttlefish ปัจจุบัน ให้ส่งหมายเลขอินสแตนซ์ฐานนั้นโดยใช้ Flag --base_instance_num
cvd create --snapshot_path=PATH \
--base_instance_num=ID
ระงับอุปกรณ์ Cuttlefish
คุณสามารถระงับอุปกรณ์ Cuttlefish โดยไม่ต้องถ่ายภาพหน้าจอ (ไม่ต้องใช้พื้นที่ดิสก์ในการบันทึกสถานะ) หากต้องการระงับอุปกรณ์ Cuttlefish ให้เรียกใช้คำสั่งต่อไปนี้
cvd suspend
ใช้งานอุปกรณ์ Cuttlefish ต่อ
หากต้องการทำให้อุปกรณ์ Cuttlefish ที่ถูกระงับกลับมาใช้งานได้ ให้เรียกใช้คำสั่งต่อไปนี้
cvd resume
ตรวจสอบฟีเจอร์สแนปชอต/การกู้คืน
คุณสามารถตรวจสอบความถูกต้องของฟีเจอร์ภาพรวม/การกู้คืนได้โดยทำการทดสอบต่อไปนี้
atest SnapshotTest