Android 15 giới thiệu cách chụp ảnh màn hình và khôi phục ảnh chụp nhanh của một thiết bị ảo Cuttlefish. Việc chụp nhanh một thiết bị Cuttlefish cho phép bạn lưu trạng thái của thiết bị vào một hình ảnh trên đĩa. Sau đó, bạn có thể khôi phục ảnh chụp nhanh để đưa thiết bị Cuttlefish về trạng thái đã lưu trước đó.
Bạn có thể sử dụng ảnh chụp nhanh trong nhiều quy trình tự động hoặc thủ công. Khi thực hiện một quy trình sửa đổi thiết bị, bạn có thể chụp nhanh thiết bị để đảm bảo có thể khôi phục thiết bị về một trạng thái cụ thể. Ví dụ: khi chạy các bộ kiểm thử sửa đổi trạng thái của thiết bị và có thể gây ra sự cố hoặc tình trạng không ổn định trong các kiểm thử sau, bạn có thể chụp nhanh để khôi phục thiết bị về trạng thái đã lưu sau một kiểm thử, đảm bảo rằng các kiểm thử tiếp theo chạy trơn tru.
Một quy trình làm việc khác mà ảnh chụp nhanh hữu ích là khi kiểm thử hành vi của một ứng dụng. Khi kiểm thử hành vi của một ứng dụng dựa trên một tập hợp các thao tác, bạn có thể chụp ảnh nhanh giữa các thao tác khi ứng dụng đang chạy để cho phép bạn khôi phục về ảnh chụp nhanh đó mà không cần phải khởi động lại từ đầu. Ví dụ: nếu thời gian khởi động trò chơi kéo dài, bạn có thể chụp nhanh sau khi đạt đến trình đơn chính để khôi phục thiết bị về trạng thái đó, bỏ qua thời gian khởi động.
Chụp nhanh thiết bị Cuttlefish
Khi chụp nhanh một thiết bị, thiết bị Cuttlefish phải được tạm ngưng để đảm bảo thiết bị Cuttlefish ở trạng thái ổn định. Khi thiết bị bị tạm ngưng, tất cả vCPU và thiết bị sẽ dừng hoạt động và tất cả các vùng đệm sẽ đẩy trạng thái của chúng vào VM. Sau đó, ảnh chụp nhanh sẽ lưu trạng thái vCPU, bộ nhớ và trạng thái thiết bị vào ổ đĩa tại một thư mục đích được chỉ định.
VirtiosFS không được hỗ trợ và phải bị vô hiệu hoá khi chụp ảnh nhanh. Để tắt VirtioFS, hãy truyền đối số --enable_virtiofs=false
khi chạy cvd create
hoặc cvd start
.
Chỉ chế độ GPU SwiftShader (guest_swiftshader
) được hỗ trợ cho ảnh chụp nhanh. Các chế độ đồ hoạ tăng tốc khác không được hỗ trợ.
Các bước sau đây mô tả quy trình khởi chạy thiết bị Cuttlefish và chụp nhanh.
Khởi chạy một thiết bị trong khi tắt VirtioFS. (Sau đó, bạn có thể sử dụng thiết bị.)
cvd create --enable_virtiofs=false --gpu_mode=guest_swiftshader
Chụp nhanh bằng cách chạy
cvd snapshot_take
với các cờ sau:--force
: Nếu có một thư mục tại đường dẫn ảnh chụp nhanh đã chỉ định, cờ này sẽ đảm bảo rằng thư mục hiện có bị xoá và một thư mục mới được tạo tại đường dẫn ảnh chụp nhanh chứa ảnh chụp nhanh--auto_suspend
: Tạm ngưng thiết bị trước khi chụp nhanh và tiếp tục hoạt động của thiết bị sau khi chụp nhanh.--snapshot_path
: Đường dẫn được chỉ định nơi một thư mục mới được tạo cùng với ảnh chụp nhanh.
cvd snapshot_take --force --auto_suspend \ --snapshot_path=PATH
Khôi phục thiết bị Cuttlefish
Khi khôi phục ảnh chụp nhanh của thiết bị Cuttlefish, bạn phải dừng phiên bản Cuttlefish mà ảnh chụp nhanh được chụp. Nếu phiên bản đã dừng, bạn không cần làm gì thêm và có thể khôi phục ảnh chụp nhanh.
Để khôi phục ảnh chụp nhanh của một thiết bị Cuttlefish, hãy khởi chạy một thiết bị bằng cvd create
và thêm đường dẫn đến ảnh chụp nhanh. Nếu số phiên bản cơ sở của thiết bị Cuttlefish mà bạn chụp nhanh khác với số phiên bản cơ sở của phiên bản Cuttlefish hiện tại, hãy truyền số phiên bản cơ sở đó bằng cờ --base_instance_num
.
cvd create --snapshot_path=PATH \
--base_instance_num=ID
Tạm ngưng thiết bị Cuttlefish
Bạn có thể tạm ngưng một thiết bị Cuttlefish mà không cần chụp nhanh (không dùng dung lượng ổ đĩa để lưu trạng thái). Để tạm ngưng một thiết bị Cuttlefish, hãy chạy lệnh:
cvd suspend
Tiếp tục sử dụng thiết bị Cuttlefish
Để tiếp tục sử dụng thiết bị Cuttlefish bị tạm ngưng, hãy chạy lệnh:
cvd resume
Xác thực tính năng Ảnh chụp nhanh/Khôi phục
Bạn có thể xác thực tính năng Chụp nhanh/Khôi phục bằng cách chạy thử nghiệm sau:
atest SnapshotTest