ویژگی بازگرداندن اعتبارنامهها در 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»، مراحل زیر را تکمیل کنید:
- برنامهتان را در شبیهساز اجرا کنید.
- بااستفاده از هر سازوکار اصالتسنجی (برای مثال، نام کاربری و گذرواژه، گذرکلید، یا «ورود به سیستم با Google») به سیستم برنامه وارد شوید تا برنامهتان
createCredential()را باCreateRestoreCredentialRequestفراخوانی کند. - روی پشتیبانگیری از دادههای برنامه در گزینههای دستگاه در بالای پنجره دستگاه درحال اجرا کلیک کنید.
شکل ۱: پشتیبانگیری از دادههای برنامه در Android Studio برای نوع پشتیبانگیری، دستگاه به دستگاه یا ابر را انتخاب کنید.
روی تأیید کلیک کنید.
آزمایش اصالتسنجی بازیابیشده
پساز تکمیل پشتیبانگیری، از همان دستگاه برای آزمایش مرحله بازیابی استفاده کنید یا از دستگاه دیگری استفاده کنید.
برای آزمایش کردن جریان بازیابی در «استودیو Android»، مراحل زیر را تکمیل کنید:
برای آزمایش با همان دستگاه، برنامه را حذف نصب و بازنصب کنید (
adb uninstall <package_name>و سپسadb install <path_to_apk>). با این کار، همه دادههای برنامه محلی و کلید بازیابی قبلی در دستگاه پاک میشود. برای استفاده از آن در دستگاه جدید، برنامه را در دستگاه جدید نصب کنید.برای آزمایش بازیابی پسزمینه سطح ۱ (
BackupAgent.onRestoreFinished()) بدون راهاندازیActivity، اجرا > ویرایش پیکربندیها را در Android Studio باز کنید و قبلاز نصب، گزینههای راهاندازی > راهاندازی را روی هیچکدام تنظیم کنید. اگر برنامه را قبلاز اجرای بازیابی دادههای برنامه راهاندازی کنید، به صفحه اصالتسنجی هدایت میشوید زیرا کلید بازیابی هنوز در دستگاه بازیابی نشده است.روی بازیابی دادههای برنامه در گزینههای دستگاه در پنجره دستگاه درحال اجرا کلیک کنید و نسخه پشتیبان اخیراً ایجادشده را انتخاب کنید.
شکل ۲: بازیابی دادههای برنامه در «استودیو Android» 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را در یک یا دو دستگاه متصل اجرا کنید. برای دستورالعملهای راهاندازی و آزمایشهای نمونه، به آزمایش بازیابی و پشتیبانگیری خودکار مراجعه کنید.