آزمایش بازگرداندن اعتبارنامه‌ها

ویژگی بازگرداندن اعتبارنامه‌ها در Credential Manager انتقال بی‌دردسری را برای کاربرانی که به دستگاه جدید منتقل می‌شوند تضمین می‌کند. هنگام آزمایش ویژگی، می‌توانید از یکی از رویکردهای زیر استفاده کنید:

  • دستگاه‌های جداگانه: از دستگاه منبع برای پشتیبان‌گیری و از دستگاه هدف جداگانه برای بازیابی استفاده کنید، یا از دو شبیه‌ساز Android Studio جداگانه استفاده کنید.
  • یک دستگاه: از یک دستگاه فیزیکی یا شبیه‌ساز Android Studio استفاده کنید. پس‌از اینکه برنامه از داده‌هایش پشتیبان‌گیری کرد، برنامه را حذف نصب و بازنصب کنید، و سپس بازگردانی را انجام دهید.

این راهنما شرح می‌دهد که چگونه می‌توانید از Android Studio برای آزمایش «بازگرداندن اعتبارنامه‌ها» برای برنامه قابل‌اشکال‌زدایی در شبیه‌ساز استفاده کنید، و هر دو وضعیت دستگاه‌های جداگانه یا یک دستگاه را شبیه‌سازی کنید.

پیش‌نیازها

برای استفاده از ویژگی «پشتیبان‌گیری و بازیابی» Android Studio برای آزمایش «بازگرداندن اعتبارنامه‌ها»، پیش‌نیازهای زیر را تأیید کنید:

  • Android Studio Otter | 2025.2.1 یا بالاتر.
  • دستگاه مجازی یا دستگاه فیزیکی که Android 9 (سطح میانای برنامه‌سازی کاربردی ۲۸) یا بالاتر را با تصویر سیستم Google Play و خدمات Google Play نسخه 242200000 یا بالاتر اجرا می‌کند (با 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. روی پشتیبان‌گیری از داده‌های برنامه در گزینه‌های دستگاه در بالای پنجره دستگاه درحال اجرا کلیک کنید.
    پشتیبان‌گیری از داده‌های برنامه در «استودیو Android»
    شکل ۱: پشتیبان‌گیری از داده‌های برنامه در Android Studio
  4. برای نوع پشتیبان‌گیری، دستگاه به دستگاه یا ابر را انتخاب کنید.

  5. روی تأیید کلیک کنید.

آزمایش اصالت‌سنجی بازیابی‌شده

پس‌از تکمیل پشتیبان‌گیری، از همان دستگاه برای آزمایش مرحله بازیابی استفاده کنید یا از دستگاه دیگری استفاده کنید.

برای آزمایش کردن جریان بازیابی در «استودیو Android»، مراحل زیر را تکمیل کنید:

  1. برای آزمایش با همان دستگاه، برنامه را حذف نصب و بازنصب کنید (adb uninstall <package_name> و سپس adb install <path_to_apk>). با این کار، همه داده‌های برنامه محلی و کلید بازیابی قبلی در دستگاه پاک می‌شود. برای استفاده از آن در دستگاه جدید، برنامه را در دستگاه جدید نصب کنید.

  2. برای آزمایش بازیابی پس‌زمینه سطح ۱ (BackupAgent.onRestoreFinished()) بدون راه‌اندازی Activity، اجرا > ویرایش پیکربندی‌ها را در Android Studio باز کنید و قبل‌از نصب، گزینه‌های راه‌اندازی > راه‌اندازی را روی هیچ‌کدام تنظیم کنید. اگر برنامه را قبل‌از اجرای بازیابی داده‌های برنامه راه‌اندازی کنید، به صفحه اصالت‌سنجی هدایت می‌شوید زیرا کلید بازیابی هنوز در دستگاه بازیابی نشده است.

  3. روی بازیابی داده‌های برنامه در گزینه‌های دستگاه در پنجره دستگاه درحال اجرا کلیک کنید و نسخه پشتیبان اخیراً ایجادشده را انتخاب کنید.

    بازیابی داده‌های برنامه در «استودیو Android»
    شکل ۲: بازیابی داده‌های برنامه در «استودیو Android»

  4. Logcat را بررسی کنید تا مطمئن شوید BackupAgent.onRestoreFinished() RestoreCredential را در پس‌زمینه بازیابی کرده است، یا برنامه را باز کنید تا مطمئن شوید کاربر به‌طور خودکار به سیستم وارد شده است.

آزمایش با adb یا مجموعه آزمایش‌های خودکار JUnit 5

علاوه‌بر کنش میانای کاربری Android Studio، می‌توانید جریان‌های پشتیبان‌گیری و بازیابی را از خط فرمان یا در ادغام مداوم (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 را در یک یا دو دستگاه متصل اجرا کنید. برای دستورالعمل‌های راه‌اندازی و آزمایش‌های نمونه، به آزمایش بازیابی و پشتیبان‌گیری خودکار مراجعه کنید.