يقدّم نظام التشغيل Android 15 طريقة لالتقاط لقطة شاشة واستعادة لقطة شاشة لجهاز Cuttlefish الافتراضي. يتيح لك أخذ لقطة من جهاز Cuttlefish حفظ حالة الجهاز في صورة على القرص. يمكنك بعد ذلك استعادة اللقطة لإظهار جهاز Cuttlefish بالحالة المحفوظة سابقًا.
يمكنك استخدام اللقطات في مختلف مهام سير العمل الآلية أو اليدوية. عند تنفيذ إجراء يعدّل الجهاز، يمكنك أخذ لقطة للجهاز لضمان إمكانية استعادته إلى حالة محدّدة. على سبيل المثال، عند تشغيل مجموعات اختبار تعدّل حالة الجهاز وقد تتسبّب في حدوث مشاكل أو حالات عدم استقرار في الاختبارات التالية، يمكنك أخذ لقطة حتى تتمكّن من استعادة الجهاز إلى حالة محفوظة بعد إجراء اختبار، ما يضمن تشغيل الاختبارات اللاحقة بشكل سليم.
من الأمثلة الأخرى على سير العمل الذي تكون فيه اللقطات مفيدة، اختبار سلوك تطبيق. عند اختبار سلوك تطبيق استنادًا إلى مجموعة من الإجراءات، يمكنك أخذ لقطة بين الإجراءات أثناء تشغيل التطبيق للسماح لك باستعادة هذه اللقطة بدون الحاجة إلى إعادة التشغيل من البداية. على سبيل المثال، إذا استغرق تشغيل إحدى الألعاب وقتًا طويلاً، يمكنك التقاط لقطة بعد الوصول إلى القائمة الرئيسية حتى تتمكّن من إعادة الجهاز إلى هذه الحالة، وتخطّي وقت التشغيل.
أخذ لقطة لجهاز Cuttlefish
عند أخذ لقطة لجهاز، يجب تعليق جهاز Cuttlefish لضمان أن يكون جهاز Cuttlefish في حالة ثابتة. عند تعليق الجهاز، يتم إيقاف جميع وحدات المعالجة المركزية الافتراضية والأجهزة، وتدفع جميع المخازن المؤقتة حالتها إلى الجهاز الظاهري. بعد ذلك، تحفظ اللقطة حالة وحدة المعالجة المركزية الافتراضية (vCPU) والذاكرة وحالة الجهاز على القرص في مجلد وجهة محدّد.
لا تتوافق VirtiosFS ويجب إيقافها عند أخذ لقطة. لإيقاف VirtioFS، مرِّر الوسيطة
--enable_virtiofs=false
عند تشغيل cvd create
أو cvd start
.
لا يتوفّر سوى وضع وحدة معالجة الرسومات SwiftShader (guest_swiftshader
) للّقطات. لا تتوافق هذه الميزة مع أوضاع الرسومات السريعة الأخرى.
توضّح الخطوات التالية عملية تشغيل جهاز Cuttlefish وأخذ لقطة شاشة.
تشغيل جهاز مع إيقاف VirtioFS (يمكنك بعد ذلك استخدام الجهاز).
cvd create --enable_virtiofs=false --gpu_mode=guest_swiftshader
التقط لقطة من خلال تنفيذ
cvd snapshot_take
مع العلامات التالية:
--force
: إذا كان هناك مجلد في مسار اللقطة المحدّد، يضمن هذا الخيار حذف المجلد الحالي وإنشاء مجلد جديد في مسار اللقطة يحتوي على اللقطة.--auto_suspend
: تعلِّق الجهاز قبل أخذ اللقطة وتستأنف تشغيله بعد أخذها.--snapshot_path
: المسار المحدّد الذي يتم فيه إنشاء مجلد جديد يحتوي على اللقطة.
cvd snapshot_take --force --auto_suspend \ --snapshot_path=PATH
استعادة جهاز Cuttlefish
عند استعادة لقطة لجهاز Cuttlefish، يجب إيقاف مثيل Cuttlefish الذي تم أخذ اللقطة منه. إذا كانت الآلة الافتراضية متوقفة، لن تحتاج إلى اتّخاذ أي إجراء آخر ويمكنك استعادة اللقطة.
لاستعادة لقطة لجهاز Cuttlefish، شغِّل جهازًا باستخدام cvd create
وأدرِج مسار اللقطة. إذا كان رقم مثيل الجهاز الأساسي الذي تم التقاط اللقطة عليه مختلفًا عن رقم مثيل الجهاز الأساسي الحالي، مرِّر رقم مثيل الجهاز الأساسي باستخدام العلامة --base_instance_num
.
cvd create --snapshot_path=PATH \
--base_instance_num=ID
تعليق جهاز Cuttlefish
يمكنك تعليق جهاز Cuttlefish بدون أخذ لقطة (لا يتم استخدام مساحة القرص لحفظ الحالة). لتعليق جهاز Cuttlefish، شغِّل:
cvd suspend
استئناف تشغيل جهاز Cuttlefish
لاستئناف تشغيل جهاز Cuttlefish معلّق، نفِّذ ما يلي:
cvd resume
التحقّق من صحة ميزة "اللقطة/الاستعادة"
يمكن التحقّق من صحة ميزة "اللقطة/الاستعادة" من خلال إجراء الاختبار التالي:
atest SnapshotTest