Mực nang: Ảnh chụp nhanh và khôi phục

Android 15 giới thiệu cách chụp ảnh nhanh và khôi phục ảnh chụp nhanh của thiết bị ảo Cuttlefish. Việc chụp ảnh nhanh của thiết bị Cuttlefish cho phép bạn lưu trạng thái của thiết bị trong 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 làm việc 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ề trạng thái đã chỉ định. 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 sự không ổn định trong các kiểm thử sau, bạn có thể chụp ảnh nhanh để khôi phục thiết bị về trạng thái đã lưu sau khi kiểm thử, đảm bảo các kiểm thử tiếp theo chạy một cách sạch sẽ.

Một ví dụ khác về quy trình làm việc mà bản tổng quan 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 nhóm thao tác, bạn có thể tạo bản tổng quan nhanh giữa các thao tác khi ứng dụng đang chạy để cho phép bạn khôi phục bản tổng quan nhanh đó mà không phải khởi động lại từ đầu. Ví dụ: nếu việc khởi chạy trò chơi có thời gian hiển thị lâu, bạn có thể chụp ảnh nhanh sau khi truy cập vào trình đơn chính để khôi phục thiết bị về trạng thái đó, bỏ qua thời gian hiển thị.

Chụp ảnh nhanh của thiết bị Cuttlefish

Khi chụp ảnh 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 và tất cả vùng đệm sẽ đẩy trạng thái của chúng vào máy ảo. Sau đó, bản tổng quan nhanh sẽ lưu trạng thái vCPU, bộ nhớ và trạng thái thiết bị vào ổ đĩa tại thư mục đích được chỉ định.

VirtiosFS không được hỗ trợ và phải tắt khi chụp ảnh nhanh. Để vô hiệu hoá 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) mới đượ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 chạy thiết bị Mực ống và chụp ảnh nhanh.

  1. Chạy một thiết bị, đồng thời tắt VirtioFS. (Sau đó, bạn có thể sử dụng thiết bị.)

    cvd create --enable_virtiofs=false --gpu_mode=guest_swiftshader
  2. 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 được chỉ định, cờ này sẽ đảm bảo rằng thư mục hiện có sẽ bị xoá và một thư mục mới sẽ đượ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 ảnh nhanh và tiếp tục thiết bị sau khi chụp.

    • --snapshot_path: Đường dẫn được chỉ định nơi tạo thư mục mới bằng ả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 thiết bị Cuttlefish, bạn phải dừng thực thể Cuttlefish mà ảnh chụp nhanh được chụp. Nếu thực thể đã dừng thì bạn không cần làm gì thêm và có thể khôi phục bản tổng quan nhanh.

Để khôi phục ảnh chụp nhanh của thiết bị Cuttlefish, hãy khởi chạy thiết bị bằng cvd create và thêm đường dẫn ảnh chụp nhanh. Nếu số thực thể cơ sở của thiết bị mực ống mà bạn đã chụp bản tổng quan nhanh khác với số thực thể cơ sở của thực thể mực nang hiện tại, hãy truyền số thực thể cơ sở đó bằng cách sử dụ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 thiết bị Mực ống mà không cần chụp nhanh (không sử dụng dung lượng ổ đĩa để lưu trạng thái). Để tạm ngưng thiết bị Mực nang, hãy chạy:

cvd suspend

Tiếp tục thiết bị con mực

Để tiếp tục một thiết bị Cuttlefish bị tạm ngưng, hãy chạy:

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 Ảnh chụp nhanh/Khôi phục bằng cách chạy kiểm thử sau:

atest SnapshotTest