Cuttlefish:快照與還原

Android 15 介紹如何拍攝快照,以及 還原 Cuttlefish 虛擬裝置的快照。拍攝快照的 Cuttlefish 裝置可讓您將裝置狀態儲存在磁碟的映像檔中。 完成後,只要還原快照 就能讓 Cuttlefish 裝置 先前儲存狀態

您可以在各種自動或手動工作流程中使用快照。時間 例如執行修改裝置的程序、拍攝 以確保您可以將裝置還原至指定狀態。 例如,執行會修改裝置狀態的測試套件時 而且可能會導致下列測試出現問題或異常情況 可以建立快照,以便之後將裝置還原至儲存狀態 測試,確保後續的測試能順暢執行。

另一個實用的工作流程範例 應用程式的行為根據一組不同的條件來測試應用程式的行為 可以建立應用程式執行期間各動作的快照 讓您還原至該快照 不必從頭重新啟動 自訂機器學習模型 但不想花時間從頭調整機器學習參數舉例來說,如果推出遊戲需要花很長的時間 但進入主選單後可以拍攝快照,這樣就能 即可略過啟動時間

拍攝 Cuttlefish 裝置的快照

拍攝裝置快照時,必須暫停 Cuttlefish 裝置 確保 Cuttlefish 裝置處於穩定狀態裝置開啟時 已暫停、所有 vCPU 和裝置,以及所有緩衝區推送 傳送至 VM接著,快照會儲存 vCPU 的狀態、記憶體 複製到磁碟的指定目的地資料夾

系統不支援 VirtiosFS,拍攝快照時必須停用。目的地: 停用 VirtioFS,傳遞引數 執行 cvd start 時為 --enable_virtiofs=false

只有 SwiftShader (guest_swiftshader) GPU 模式可用於 快照其他加速圖形模式 不支援。

下列步驟說明啟動 Cuttlefish 裝置的程序 然後拍攝快照

  1. 啟動裝置,同時停用 VirtioFS。您即可使用該裝置。

    cvd start --enable_virtiofs=false --gpu_mode=guest_swiftshader
    
  2. 使用下列旗標執行 cvd snapshot_take 以拍攝快照:

    • --force:如果資料夾存在於指定的快照路徑,這個路徑 同時確定現有資料夾和新資料夾 會在包含快照的快照路徑建立

    • --auto_suspend:在拍攝快照前暫停裝置,並 快照建立完成後,裝置就會重新啟用。

    • --snapshot_path:建立新資料夾的指定路徑 包含快照

    cvd snapshot_take --force --auto_suspend \
    --snapshot_path=PATH
    

還原 Cuttlefish 裝置

還原 Cuttlefish 裝置快照時, 快照的拍攝時間如果執行個體 已停止,系統無須採取進一步行動,而且可以還原快照。

如要還原 Cuttlefish 裝置的快照,請使用 cvd start 啟動裝置 並加入快照路徑如果 Cuttlefish 的基數 建立快照的裝置與基礎執行個體不同 目前 Cuttlefish 例項的數量,並傳遞該基礎例項 方法是使用 --base_instance_num 旗標標記。

cvd start --snapshot_path=PATH \
--base_instance_num=ID

暫停 Cuttlefish 裝置

你可以在不建立快照的情況下暫停 Cuttlefish 裝置 (沒有磁碟空間) 用於儲存狀態)。如要暫停 Cuttlefish 裝置,請執行:

cvd suspend

重新啟用 Cuttlefish 裝置

如要重新啟用已暫停的 Cuttlefish 裝置,請執行以下指令:

cvd resume

驗證快照/還原功能

執行下列測試來驗證快照/還原功能:

atest SnapshotTest