اختبار استعادة النسخة الاحتياطية تلقائيًا

  
إطار عمل اختبار آلي للتحقّق من أنّ بيانات المستخدم وبيانات اعتماد الحساب تظلّ محفوظة بأمان عند ترقية الجهاز واستعادة البيانات من السحابة الإلكترونية.
آخر الأخبار الإصدار الثابت إصدار محتمل الإصدار التجريبي الإصدار الأوّلي
‫23 سبتمبر 2026 - - - 1.0.0-alpha01

الملاحظات

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

إنشاء مشكلة جديدة

يُرجى الاطّلاع على مستندات Issue Tracker للحصول على مزيد من المعلومات.

الإصدار 1.0 من اختبار استعادة النسخ الاحتياطية بشكل آلي

الإصدار ‎1.0.0-alpha01

‫23 سبتمبر 2026

تم طرح androidx.test.backup:backup:1.0.0-alpha01 وandroidx.test.backup:backup-host:1.0.0-alpha01. يتضمّن الإصدار ‎1.0.0-alpha01 هذه التعديلات.

ميزات الإصدار الأوّلي

الإصدار الأوّلي من إطار عمل اختبار الاحتفاظ بنسخة احتياطية واستعادتها تلقائيًا على Android توفّر هذه المكتبة طريقة مبرمَجة وشاملة لاختبار مدى بقاء بيانات المستخدم وبيانات اعتماد الحساب محفوظة بأمان عند ترقية الجهاز واستعادة البيانات من السحابة الإلكترونية. بدلاً من الاعتماد على الاختبار اليدوي، يمكن للمطوّرين إعداد عملية تلقائية لدورة الحياة الكاملة: بدء حالة التطبيق، وإجراء نسخ احتياطي لها وفقًا للقواعد التي تم ضبطها (dataExtractionRules وfullBackupContent)، ومحو بيانات التطبيق، والتحقّق من صحّة البيانات بعد استعادتها. يوفّر إطار العمل عنصرَين: androidx.test.backup:backup-host (الذي يتم تشغيله على الكمبيوتر المضيف لتنظيم عمليات الاحتفاظ بنسخة احتياطية من البيانات ومحوها واستعادتها عبر ADB) وandroidx.test.backup:backup (الذي يتم تشغيله على الجهاز لتعبئة بيانات التطبيق والتحقّق منها).

  • BackupRestoreController: هي الواجهة الأساسية على الجهاز المضيف التي تُستخدَم للتحكّم في عمليات النسخ الاحتياطي والمحو والاستعادة والتحقّق لجهاز الاختبار. توفّر هذه المكتبة مسارات معالجة سهلة الاستخدام، مثل runBackupRestoreFlow، بالإضافة إلى عمليات دقيقة (performBackup وperformRestore وclearAppData وfetchDeviceLogs وrunOnDevice)، وتتوافق مع الكوروتينات في Kotlin وتنفيذ ListenableFuture غير المتزامن في Java.
  • BackupRestoreExtension: إضافة JUnit 5 Jupiter تحلّل معلَمات BackupRestoreController وتدرجها في طرق الاختبار. تتيح إدارة جلسات تصحيح الأخطاء عبر ADB المستقلة أو المشترَكة، وتثبّت تلقائيًا حِزم APK التي تم اختبارها، وتتجاهل شاشات قفل الأجهزة وkeyguard لفتح مساحة التخزين المحمية ببيانات الاعتماد، وتفرض عزل وضع الحماية التجريبي.
  • BackupRestoreTestRunner: أداة تنفيذ اختبار Instrumentation على الجهاز تعمل داخل وضع الحماية للتطبيق. يحلّ هذا الإجراء ديناميكيًا عمليات تنفيذ BackupDeviceAction المطلوبة التي يتم إرسالها من خلال أدوات التنسيق المضيفة، ويعيد توجيه حمولات نتائج JSON الكبيرة بأمان إلى القرص لمنع تجاوز حدود مخزن مؤقت لمعاملات Binder.
  • BackupDeviceAction: العقد الخاص بتنفيذ الإجراءات المخصّصة على الجهاز مباشرةً داخل بيئة الحماية للتطبيق المستهدف أثناء إعداد البيانات (PHASE_POPULATE) أو التحقّق من الصحة بعد الاستعادة (PHASE_VERIFY).
  • StorageDomain: واصفات ذات أنواع محددة بدقة (Preference وDatabase وTextFile وBinaryFile) تُستخدَم إلى جانب أدوات مساعدة مسبقة الإنشاء لتنفيذ الإجراءات (PopulateStorageAction وAssertStorageAction) من أجل إنشاء SharedPreferences وقواعد بيانات SQLite وملفات أولية تلقائيًا وتأكيدها في سياقَي التخزين المحمي ببيانات الاعتماد (CE) والمحمي بالجهاز (DE) بدون رمز نمطي.
  • BackupTransportMode: تحدّد هذه السمة بنية نقل النسخ الاحتياطية للنظام الأساسي التي سيتم محاكاتها أثناء عمليات الاختبار، بما في ذلك DEVICE_TO_DEVICE (نقل البيانات من الجهاز الفعلي عبر الناقل التسلسلي العالمي (USB) أو اتصال Wi-Fi مباشر) وCLOUD_ENCRYPTED (النسخ الاحتياطي على السحابة الإلكترونية مع التشفير التام بين الأطراف من جهة العميل) وCLOUD_UNENCRYPTED (النسخ الاحتياطي العادي على السحابة الإلكترونية) وLOCAL (النسخ الاحتياطي غير الإلكتروني لنظام الملفات المحلي).
  • @Device و@Isolation: تعليقات توضيحية للمضيف لاختيار الأجهزة المتصلة التي تتطابق مع أرقام تسلسلية أو مستويات واجهة برمجة تطبيقات أو أدوار أجهزة مصمّمة لأجهزة متعدّدة معيّنة، وإعداد سياسات عزل البيئة التجريبية بين عمليات الاختبار (IsolationPolicy.AUTOMATIC مقابل IsolationPolicy.MANUAL).