بيانات اعتماد الاستعادة التجريبية

تضمن ميزة استعادة بيانات الاعتماد في Credential Manager انتقالاً سلسًا للمستخدمين إلى جهاز جديد. أثناء اختبار الميزة، يمكنك استخدام أي من الأساليب التالية:

  • أجهزة منفصلة: استخدِم جهازًا مصدرًا لإجراء عملية الاحتفاظ بنسخة احتياطية وجهاز اختبار منفصلاً لإجراء عملية الاستعادة، أو استخدِم محاكيَين منفصلَين في "استوديو Android".
  • جهاز واحد: يمكنك استخدام جهاز فعلي واحد أو محاكي "استوديو Android". بعد أن يحتفظ التطبيق بنسخة احتياطية من بياناته، عليك إلغاء تثبيت التطبيق وإعادة تثبيته، ثم إجراء عملية الاستعادة.

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

المتطلبات الأساسية

لاستخدام ميزة "النسخ الاحتياطي والاستعادة" في "استوديو Android" لاختبار ميزة "استعادة بيانات الاعتماد"، يُرجى التأكّد من استيفاء المتطلبات الأساسية التالية:

  • الإصدار 2025.2.1 من Android Studio Otter أو إصدار أحدث
  • جهاز افتراضي أو جهاز فعلي يعمل بنظام التشغيل Android 9 (المستوى 28 من واجهة برمجة التطبيقات) أو إصدار أحدث مع صورة نظام Google Play والإصدار 242200000 أو إصدار أحدث من "خدمات Google Play" (يُرجى التحقّق من ذلك باستخدام adb shell dumpsys package com.google.android.gms | grep versionCode).
  • حساب Google تم تسجيل الدخول إليه على جهاز الاختبار أو المحاكي، مع ضبط قفل الشاشة برقم تعريف شخصي أو نقش أو كلمة مرور ضمن الإعدادات > الأمان، ليكون التشفير التام بين الأطراف (E2EE) في السحابة الإلكترونية نشطًا ولا يتم طرح E2eeUnavailableException.
  • تطبيق تم إنشاؤه باستخدام debuggable true أو يعمل في وضع debug. يتم تفعيل تصحيح الأخطاء تلقائيًا للمحاكيات.

استخدام ميزة "الاحتفاظ بنسخة احتياطية والاستعادة" في "استوديو Android"

لاختبار وظيفة "استعادة بيانات الاعتماد" باستخدام "استوديو Android"، عليك أولاً الاحتفاظ بنسخة احتياطية من البيانات من أحد الأجهزة، ثم استعادة بيانات التطبيق على جهاز آخر. بعد استعادة التطبيق، تتم استعادة حالة المصادقة تلقائيًا.

الاحتفاظ بنسخة احتياطية من بيانات المصادقة في "استوديو Android"

لاختبار عملية الاحتفاظ بنسخة احتياطية في "استوديو Android"، اتّبِع الخطوات التالية:

  1. شغِّل تطبيقك على المحاكي.
  2. سجِّل الدخول إلى التطبيق باستخدام أي آلية مصادقة (مثل اسم المستخدم وكلمة المرور أو مفاتيح المرور أو ميزة "تسجيل الدخول باستخدام حساب Google") لكي يستدعي تطبيقك createCredential() باستخدام CreateRestoreCredentialRequest.
  3. انقر على الاحتفاظ بنسخة احتياطية من بيانات التطبيق (Backup App Data) في خيارات الجهاز في أعلى نافذة الجهاز المتصل.
    الاحتفاظ بنسخة احتياطية من بيانات التطبيق في "استوديو Android"
    الشكل 1: الاحتفاظ بنسخة احتياطية من بيانات التطبيق في "استوديو Android"
  4. بالنسبة إلى نوع الاحتفاظ بنسخة احتياطية، اختَر من جهاز إلى جهاز أو السحابة الإلكترونية.

  5. انقر على موافق.

اختبار المصادقة التي تمت استعادتها

بعد اكتمال عملية الاحتفاظ بنسخة احتياطية، يمكنك استخدام الجهاز نفسه لاختبار خطوة الاستعادة أو استخدام جهاز آخر.

لاختبار عملية الاستعادة في استوديو Android، يُرجى اتّباع الخطوات التالية:

  1. للاختبار باستخدام الجهاز نفسه، عليك إلغاء تثبيت التطبيق وإعادة تثبيته (adb uninstall <package_name> ثم adb install <path_to_apk>). يؤدي ذلك إلى محو جميع بيانات التطبيق المحلية ومفتاح الاستعادة السابق على الجهاز. لاستخدامه على جهاز جديد، عليك تثبيت التطبيق على الجهاز الجديد.

  2. لاختبار عملية الاستعادة في الخلفية من المستوى الأول (BackupAgent.onRestoreFinished()) بدون تشغيل Activity أولاً، افتح تشغيل > تعديل الإعدادات في "استوديو Android" واضبط خيارات التشغيل > تشغيل على لا شيء قبل التثبيت. إذا شغّلت التطبيق قبل تشغيل استعادة بيانات التطبيق، ستتم إعادة توجيهك إلى شاشة المصادقة لأنّه لم تتم استعادة مفتاح الاستعادة إلى الجهاز بعد.

  3. انقر على استعادة بيانات التطبيق في خيارات الجهاز ضمن نافذة الأجهزة المتصلة، واختَر النسخة الاحتياطية التي تم إنشاؤها مؤخرًا.

    استعادة بيانات التطبيق في &quot;استوديو Android&quot;
    الشكل 2: استعادة بيانات التطبيق في "استوديو Android"

  4. افحص Logcat للتأكّد من أنّ BackupAgent.onRestoreFinished() استردّ RestoreCredential في الخلفية، أو افتح التطبيق للتأكّد من أنّ المستخدم قد سجّل الدخول تلقائيًا.

اختبِر تطبيقك باستخدام adb أو حِزم اختبار JUnit 5 المبرمَجة

بالإضافة إلى إجراء واجهة المستخدم في "استوديو Android"، يمكنك اختبار عمليات الاحتفاظ بنسخة احتياطية والاستعادة من سطر الأوامر أو في التكامل المستمر (CI):

  • الاختبار باستخدام سطر الأوامر من خلال bmgr: على جهاز فعلي أو محاكي بدون واجهة مستخدم، يمكنك تفعيل مدير الاحتفاظ بنسخة احتياطية (adb shell bmgr enable true) وتشغيل عملية الاحتفاظ بنسخة احتياطية (adb shell bmgr backupnow <package_name>) وإعادة تثبيت التطبيق وإدراج مجموعات النُسخ الاحتياطية المتاحة (adb shell bmgr list sets) وتشغيل عملية استعادة (adb shell bmgr restore <token> <package_name>). للاطّلاع على التفاصيل الكاملة، يُرجى مراجعة اختبار الاحتفاظ بنسخة احتياطية والاستعادة.
  • اختبارات JUnit 5 المبرمَجة على المضيف (androidx.test.backup): يمكنك كتابة اختبارات JUnit 5 المبرمَجة باستخدام BackupRestoreController لتشغيل كل من BackupTransportMode.CLOUD_ENCRYPTED وBackupTransportMode.DEVICE_TO_DEVICE على جهاز واحد أو جهازَين متصلَين. للحصول على تعليمات الإعداد ونماذج الاختبارات، يُرجى الاطّلاع على اختبار الاحتفاظ بنسخة احتياطية واستعادتها تلقائيًا.