Android 15 เปิดตัววิธีถ่ายสแนปชอตและ กู้คืนสแนปชอตของอุปกรณ์เสมือนของ Cuttlefish กำลังสร้างภาพรวมของ อุปกรณ์หมึกกระดองให้คุณบันทึกสถานะของอุปกรณ์เป็นรูปภาพบนดิสก์ได้ จากนั้นคุณจะสามารถคืนค่าสแนปชอตเพื่อนำอุปกรณ์ Cuttlefish ขึ้นมาไปยัง สถานะที่บันทึกไว้ก่อนหน้านี้
คุณสามารถใช้สแนปชอตในเวิร์กโฟลว์อัตโนมัติหรือด้วยตนเองที่หลากหลาย วันและเวลา เมื่อดำเนินการปรับเปลี่ยนอุปกรณ์ คุณจะสามารถบันทึกสแนปชอต เพื่อให้มั่นใจว่าคุณสามารถคืนค่าอุปกรณ์กลับสู่สถานะที่ระบุได้ ตัวอย่างเช่น เมื่อเรียกใช้ชุดทดสอบที่ปรับเปลี่ยนสถานะอุปกรณ์ และอาจก่อให้เกิดปัญหาหรือความไม่เสถียรในการทดสอบต่อไปนี้ คุณสามารถถ่ายสแนปชอตเพื่อคืนค่าอุปกรณ์ให้กลับสู่สถานะที่บันทึกไว้หลังจาก การทดสอบ โดยตรวจสอบว่าการทดสอบครั้งต่อๆ ไปดำเนินการอย่างถูกต้อง
อีกตัวอย่างเวิร์กโฟลว์หนึ่งที่สแนปชอตมีประโยชน์คือ เมื่อทดสอบแท็ก พฤติกรรมของแอป เมื่อทดสอบลักษณะการทำงานของแอปตามชุดของ คุณสามารถจับภาพระหว่างการดำเนินการต่างๆ ในขณะที่แอปทำงานอยู่ เพื่อให้คุณคืนค่าเป็นสแนปชอตนั้นได้โดยไม่ต้องรีสตาร์ทจาก เริ่มต้น ตัวอย่างเช่น ถ้าการเปิดตัวเกมใช้เวลานานในการเริ่มนำ สามารถถ่ายสแนปชอตหลังจากถึงเมนูหลักเพื่อให้คืนค่า อุปกรณ์เป็นสถานะนั้นโดยข้ามเวลานำขึ้นเครื่อง
ถ่ายภาพอุปกรณ์หมึกกระดอง
ต้องระงับอุปกรณ์ Cuttlefish เมื่อถ่ายภาพอุปกรณ์ เพื่อตรวจสอบว่าอุปกรณ์ Cuttlefish อยู่ในสถานะเสถียรแล้ว เมื่ออุปกรณ์ ถูกระงับ, vCPU และอุปกรณ์ทั้งหมดหยุดทำงาน และบัฟเฟอร์ทั้งหมด สถานะไปยัง VM สแนปชอตจะบันทึกสถานะ vCPU, หน่วยความจำ และสถานะของอุปกรณ์ลงในดิสก์ในโฟลเดอร์ปลายทางที่ระบุ
ระบบไม่รองรับ VirtiosFS และจำเป็นต้องปิดใช้เมื่อถ่ายภาพสแนปชอต ถึง
ปิดใช้ VirtioFS แล้วส่งอาร์กิวเมนต์
--enable_virtiofs=false
เมื่อใช้ cvd start
รองรับเฉพาะโหมด GPU SwiftShader (guest_swiftshader
) สำหรับ
โหมดกราฟิกแบบเร่งอื่นๆ
ไม่ได้
ขั้นตอนต่อไปนี้อธิบายกระบวนการเปิดใช้งานอุปกรณ์ Cuttlefish และถ่ายสแนปชอต
เปิดอุปกรณ์ขณะปิดใช้ VirtioFS (จากนั้นคุณจะใช้อุปกรณ์ได้)
cvd start --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 จะเป็น ที่ต้องหยุดสแนปชอต หากมีอินสแตนซ์อยู่แล้ว หยุดแล้ว คุณไม่ต้องดำเนินการใดๆ เพิ่มเติมและจะกู้คืนสแนปชอตได้
หากต้องการกู้คืนสแนปชอตของอุปกรณ์หมึกกระดอง ให้เปิดอุปกรณ์ด้วย cvd start
และระบุเส้นทางสแนปชอต ถ้าตัวเลขอินสแตนซ์ฐานของหมึกกระดอง
อุปกรณ์ที่มีการบันทึกสแนปชอตแตกต่างจากอินสแตนซ์ฐาน
จำนวนอินสแตนซ์หมึกกระดองปัจจุบัน ส่งอินสแตนซ์พื้นฐานนั้น
โดยใช้การแฟล็ก --base_instance_num
cvd start --snapshot_path=PATH \
--base_instance_num=ID
ระงับอุปกรณ์หมึกกระดอง
คุณสามารถระงับอุปกรณ์ Cuttlefish โดยไม่ต้องสร้างสแนปชอตได้ (ไม่ต้องใช้พื้นที่ดิสก์ เพื่อบันทึกรัฐ) หากต้องการระงับอุปกรณ์ Cuttlefish ให้เรียกใช้คำสั่งต่อไปนี้
cvd suspend
ใช้งานอุปกรณ์ Cuttlefish ต่อ
หากต้องการเปิดใช้อุปกรณ์ Cuttlefish ที่ถูกระงับ ให้กลับมาทํางานอีกครั้ง ให้เรียกใช้คำสั่งต่อไปนี้
cvd resume
ตรวจสอบฟีเจอร์สแนปชอต/กู้คืน
ฟีเจอร์สแนปชอต/กู้คืนสามารถตรวจสอบได้โดยทำการทดสอบต่อไปนี้
atest SnapshotTest