ساقه ماهی: عکس فوری و بازیابی

اندروید 15 نحوه گرفتن عکس فوری و بازیابی یک عکس فوری از یک دستگاه مجازی Cuttlefish را معرفی می کند. گرفتن یک عکس فوری از دستگاه Cuttlefish به شما امکان می دهد وضعیت دستگاه را در یک تصویر روی دیسک ذخیره کنید. سپس می توانید عکس فوری را بازیابی کنید تا یک دستگاه Cuttlefish به حالت ذخیره شده قبلی باز شود.

می‌توانید از عکس‌های فوری در گردش‌های کاری مختلف خودکار یا دستی استفاده کنید. هنگام انجام رویه‌ای که دستگاه را تغییر می‌دهد، می‌توانید یک عکس فوری از دستگاه بگیرید تا مطمئن شوید که می‌توانید دستگاه را به حالت مشخص بازگردانید. به عنوان مثال، هنگام اجرای مجموعه‌های آزمایشی که وضعیت دستگاه را تغییر می‌دهند و به طور بالقوه می‌توانند باعث ایجاد مشکلات یا بی‌ثباتی در آزمایش‌های زیر شوند، می‌توانید یک عکس فوری بگیرید تا بتوانید دستگاه را پس از آزمایش به حالت ذخیره‌شده برگردانید و از اجرای آزمایش‌های بعدی اطمینان حاصل کنید. تمیز

نمونه دیگری از گردش کار که در آن عکس های فوری مفید هستند، هنگام آزمایش رفتار یک برنامه است. هنگام آزمایش رفتار یک برنامه بر اساس مجموعه ای از اقدامات، می توانید یک عکس فوری در بین عملکردها در حالی که برنامه در حال اجرا است بگیرید تا به شما امکان دهد بدون نیاز به راه اندازی مجدد از ابتدا، آن عکس فوری را بازیابی کنید. به عنوان مثال، اگر راه‌اندازی یک بازی زمان بارگذاری طولانی دارد، می‌توانید پس از رسیدن به منوی اصلی، یک عکس فوری بگیرید تا بتوانید دستگاه را به آن حالت بازگردانید و از زمان بازگردانی صرفنظر کنید.

یک عکس فوری از یک دستگاه سگ ماهی بگیرید

هنگام گرفتن عکس فوری از یک دستگاه، دستگاه Cuttlefish باید معلق باشد تا مطمئن شوید که دستگاه Cuttlefish در حالت پایدار است. هنگامی که دستگاه تعلیق می شود، تمام vCPU ها و دستگاه ها متوقف می شوند و همه بافرها وضعیت خود را به VM منتقل می کنند. سپس عکس فوری وضعیت vCPU، حافظه و وضعیت دستگاه را در دیسک در یک پوشه مقصد مشخص ذخیره می کند.

VirtiosFS پشتیبانی نمی شود و هنگام گرفتن عکس فوری باید غیرفعال شود. برای غیرفعال کردن VirtioFS، هنگام اجرای cvd create یا cvd start ، آرگومان --enable_virtiofs=false را ارسال کنید.

فقط حالت GPU SwiftShader ( guest_swiftshader ) برای عکس های فوری پشتیبانی می شود. سایر حالت‌های گرافیکی شتاب‌دار پشتیبانی نمی‌شوند.

مراحل زیر روند راه اندازی دستگاه Cuttlefish و گرفتن عکس فوری را شرح می دهد.

  1. یک دستگاه را راه اندازی کنید، در حالی که VirtioFS را غیرفعال کنید. (پس از آن می توانید از دستگاه استفاده کنید.)

    cvd create --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 که برای آن عکس فوری گرفته شده است باید متوقف شود. اگر نمونه از قبل متوقف شده باشد، هیچ اقدام دیگری لازم نیست و می توان عکس فوری را بازیابی کرد.

برای بازیابی یک عکس فوری از یک دستگاه Cuttlefish، یک دستگاه با cvd create راه اندازی کنید و مسیر عکس فوری را اضافه کنید. اگر شماره نمونه پایه دستگاه Cuttlefish که عکس فوری از آن گرفته شده است با شماره نمونه پایه نمونه فعلی Cuttlefish متفاوت است، آن شماره نمونه پایه را با استفاده از پرچم --base_instance_num ارسال کنید.

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

یک دستگاه کوتلفیش را معلق کنید

شما می توانید یک دستگاه Cuttlefish را بدون گرفتن عکس فوری معلق کنید (برای ذخیره وضعیت از فضای دیسک استفاده نمی شود). برای تعلیق دستگاه Cuttlefish، اجرا کنید:

cvd suspend

یک دستگاه کوتلفیش را از سر بگیرید

برای از سرگیری دستگاه Cuttlefish معلق، اجرا کنید:

cvd resume

قابلیت Snapshot/Restore را اعتبارسنجی کنید

ویژگی Snapshot/Restore را می توان با اجرای آزمایش زیر تأیید کرد:

atest SnapshotTest