حبَّار: أخذ لقطة واستعادة للبيانات

يقدّم Android 15 طريقة لأخذ لقطة واستعادة لقطة لجهاز حبَّار افتراضي. يتيح لك أخذ لقطة لجهاز الحبار حفظ حالة الجهاز في صورة على قرص. يمكنك بعد ذلك استعادة اللقطة لإعادة جهاز الحبار إلى الحالة المحفوظة سابقًا.

يمكنك استخدام اللقطات في عمليات سير العمل المختلفة المبرمَجة أو اليدوية. عند تنفيذ إجراء يؤدي إلى تعديل الجهاز، يمكنك أخذ لقطة شاشة له لضمان إمكانية استعادة الجهاز إلى حالة محدّدة. على سبيل المثال، عند تشغيل مجموعات اختبار تؤدي إلى تعديل حالة الجهاز ويمكن أن تتسبّب في حدوث مشاكل أو حالات عدم استقرار في الاختبارات التالية، يمكنك أخذ لقطة كي تتمكّن من استعادة الجهاز إلى الحالة المحفوظة بعد الاختبار، ما يضمن تنفيذ الاختبارات اللاحقة بشكل سليم.

مثال آخر على سير العمل الذي تكون فيه اللقطات مفيدة هو عند اختبار سلوك أحد التطبيقات. عند اختبار سلوك أحد التطبيقات استنادًا إلى مجموعة من الإجراءات، يمكنك أخذ لقطة بين الإجراءات أثناء تشغيل التطبيق للسماح لك باستعادة هذه اللقطة بدون الحاجة إلى إعادة البدء من البداية. على سبيل المثال، إذا كان تشغيل لعبة يستغرق وقتًا طويلاً، يمكنك أخذ لقطة شاشة بعد الوصول إلى القائمة الرئيسية حتى تتمكّن من استعادة الجهاز إلى تلك الحالة، وتجاوز وقت التشغيل.

التقاط لقطة لجهاز حبّار

عند أخذ لقطة من جهاز، يجب تعليق جهاز الحبار للتأكد من أن جهاز الحبار في حالة مستقرة. عند تعليق الجهاز، يتم إيقاف جميع وحدات المعالجة المركزية الافتراضية والأجهزة، وتُرسِل جميع المخازن المؤقتة حالتها إلى الجهاز الظاهري. بعد ذلك، تحفظ اللقطة حالة وحدة المعالجة المركزية الافتراضية والذاكرة وحالة الجهاز على القرص في مجلد وجهة محدّد.

لا يتوافق VirtiosFS مع هذه العملية ويجب إيقافه عند أخذ لقطة خاطفة. لإيقاف VirtioFS، عليك تمرير الوسيطة --enable_virtiofs=false عند تشغيل cvd create أو cvd start.

لا يتوفّر سوى وضع وحدة معالجة الرسومات SwiftShader ‏(guest_swiftshader) لالتقاط لقطات الشاشة. أوضاع الرسومات المحسّنة غير متوافقة.

توضح الخطوات التالية عملية إطلاق جهاز الحبار وأخذ لقطة.

  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، يمكنك تشغيل جهاز باستخدام cvd create وتضمين مسار اللقطة. إذا كان رقم الإصدار الأساسي لجهاز Cuttlefish الذي تم أخذ اللقطة منه يختلف عن رقم الإصدار الأساسي لوحدة Cuttlefish الحالية، يجب ضبط هذا الرقم باستخدام العلامة --base_instance_num.

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

تعليق جهاز Cuttlefish

يمكنك تعليق جهاز Cuttlefish بدون أخذ لقطة (لا يتم استخدام مساحة القرص لحفظ الحالة). لتعليق جهاز Cuttlefish، شغِّل:

cvd suspend

استئناف استخدام جهاز Cuttlefish

لاستئناف عمل جهاز Cuttlefish معلّق، نفِّذ ما يلي:

cvd resume

التحقق من صحة الميزة لقطة/استعادة

يمكن التحقّق من صحة ميزة اللقطة/الاستعادة عن طريق إجراء الاختبار التالي:

atest SnapshotTest