پشتیبانگیری آزمایشی
| جدیدترین بهروزرسانی | نسخه پایدار | نامزد انتشار | انتشار نسخه بتا | نسخه آلفا |
|---|---|---|---|---|
| ۲۱ اکتبر ۲۰۲۶ | - | - | - | 1.0.0-alpha03 |
اعلام وابستگیها
برای افزودن وابستگی به پشتیبانگیری آزمایشی، باید مخزن Google Maven را به پروژهتان اضافه کنید. برای اطلاعات بیشتر، مخزن Maven در Google را بخوانید.
وابستگیهای مصنوعات موردنیازتان را در فایل build.gradle برای برنامه یا واحدتان اضافه کنید:
شیک
dependencies { implementation "androidx.test.backup:backup:1.0.0-alpha03" implementation "androidx.test.backup:backup-host:1.0.0-alpha03" }
کاتلین
dependencies { implementation("androidx.test.backup:backup:1.0.0-alpha03") implementation("androidx.test.backup:backup-host:1.0.0-alpha03") }
برای اطلاعات بیشتر درباره وابستگیها، به افزودن وابستگیهای ساخت مراجعه کنید.
بازخورد
بازخوردتان به بهبود Jetpack کمک میکند. اگر مشکل جدیدی پیدا کردید یا ایدهای برای بهبود این کتابخانه دارید، به ما اطلاع دهید. لطفاً قبلاز ایجاد مشکل جدید، مشکلات موجود در این کتابخانه را بررسی کنید. با کلیک کردن روی دکمه ستاره میتوانید رأی خود را به مشکل موجود اضافه کنید.
برای اطلاعات بیشتر، سند Issue Tracker را ببینید.
Automated Backup Restore Test Version 1.0
نسخه 1.0.0-alpha03
۲۱ اکتبر ۲۰۲۶
androidx.test.backup:backup:1.0.0-alpha03 و androidx.test.backup:backup-host:1.0.0-alpha03 منتشر شدهاند. نسخه 1.0.0-alpha03 حاوی این موارد ثبت است.
ویژگیهای جدید
- راهاندازی آزمایشی سادهشده در مجموعههای آزمایشی پشتیبانگیری «افزایه Android Gradle» با هدفیابی خودکار برنامه آزمایششده درصورت حذف
@BackupRestoreConfig. (I1452b) - پشتیبانی از ارثبری تنظیمات
@BackupRestoreConfigو@Isolationاز کلاس آزمایشی بیرونی در کلاسهای آزمایشی@Nestedاضافه شد. (Ia45a8) - پشتیبانی از تزریق مستقیم
BackupRestoreControllerبه سازندههای کلاس آزمایشی و روشهای راهاندازی@BeforeAllاضافه شد. (I6e822، Ia2ebd) - پشتیبانی از سنجاق کردن دستگاهی خاص به نقش
@Deviceدر آزمایشهای چنددستگاهی بااستفاده از ویژگیandroidx.test.backup.device.serial.{role}اضافه شد. (I484be)
رفع اشکالها
performBackupوperformRestoreاصلاح شد تا وقتی پشتیبانگیری رد میشود یا خالی است، وقتی سرویس پشتیبانگیری خطا میدهد، یا وقتی بایگانی پشتیبانگیری محلی متعلق به برنامه یا دستگاه دیگری است، آزمایشها بهجای اینکه بدون اطلاع رد شوند، فوراً ناموفق شوند. (I7673d، I478ad، I0b989، I9a0ea، I79567)- مشکل توقف نامحدود آزمایشها در دستگاههای غیرپاسخگو با اعمال زمانبندی در مراحل پشتیبانگیری، بازیابی، کنشهای دستگاه، و پاکسازی برطرف شد. (I10661، I9cdee، If5f92)
- مشکل حذف فایلهای پشتیبان تولیدشده توسط
performBackupپساز اتمام اجرای آزمایش برطرف شد، بنابراین اکنون بایگانیهای پشتیبان پساز خروج از آزمایشها در دیسک نگهداری میشوند. (I8c13f) - کمککنندههای آزمایش پایگاه داده (
StorageDomain.Database) را اصلاح کردیم تا مقادیرnullرا بهدرستی ذخیره و بررسی کنند، ردیفهای موجود را هنگام کاشت دادههای آزمایشی بازنویسی کنند، پیکربندیهای نامعتبر جدول را زودتر شناسایی کنند، و درصورت مفقود شدن فایل پایگاه داده موردانتظار، خطا دهند. (Ib4767، Iddf87، I19c43، Ie8d78، I8bc18) SharedPreferencesکمککننده آزمایشی برای حفظ دقیق انواع دادهها و پشتیبانی از بررسی اولویتهایnullیا حذفشده اصلاح شد. (I8456d9، I1d0fc2)runOnDeviceاصلاح شد تا بارهای آزمایشی بزرگ را بدون ازکار افتادن مدیریت کند، وقتیwaitForDebuggerفعال است برای اشکالزدا مکث کند، اجراکننده آزمایشی را در نامهای بسته APK آزمایشی سفارشی پیدا کند، و از نشت پرچمهای اجراکننده داخلی به کنشهای دستگاه جلوگیری کند. (Ic73bd، Iede17، I1d172، I84c15)- پایداری و سرعت آزمایش را با همرسانی یک اتصال ADB در سراسر اجرای آزمایش، نصب APK فقط یکبار در هر دستگاه، و ناموفق شدن واضح وقتی APK نصب یا راهاندازی نمیشود بهبود بخشیدیم. (I62717، Iabf75، I14e6f، I4c3da5، I54077، Iee84e)
- مشکل
fetchDeviceLogsدر نوشتن فایلهای گزارش خالی برطرف شد و اجرای آزمایشهای لغوشده دیگر گزارشهای خرابی نادرست تولید نمیکنند. (I736c4، I7b199، Ia847e) - وابستگیهای
backup-hostپاکسازی شد تاadblibمستقیماً برای تماسگیرندگان دردسترس باشد و کتابخانههای ثبت داخلی یا آزمایشی دیگر با مسیر کلاس پروژهتان تداخل نداشته باشند. (I6e822، Iba9a4، Ib4ec9)
نسخه 1.0.0-alpha02
۷ اکتبر ۲۰۲۶
androidx.test.backup:backup:1.0.0-alpha02 و androidx.test.backup:backup-host:1.0.0-alpha02 منتشر شدهاند. نسخه 1.0.0-alpha02 حاوی این ارسالها است.
تغییرات میانای برنامهسازی کاربردی
- کلیدهای بار مفید اکنون بهصورت
BackupActionInputKeys،BackupActionOutputKeys، وBackupActionValuesمستند شدهاند و جایگزین ثابتهایBackupDeviceActionشدهاند. کارخانههایBackupDeviceActionResult.success()وfailure()، بههمراه دسترسیهایisSuccessوerrorMessageاضافه شد. (Ibd493)
رفع اشکالها
- اکنون وقتی
pm clearموفقیت را گزارش نمیکند،BackupRestoreController.clearAppDataبهجای ادامه دادن بیصدا،IOExceptionرا نشان میدهد. (I61556) - آرگومانهای پوسته که برای اجرای دستگاه به
BackupRestoreControllerارسال میشوند اکنون بهدرستی گریز داده میشوند تا از تزریق فرمان جلوگیری شود و اطمینان حاصل شود که مسیرهای فایل دارای فاصله بهطور ایمن مدیریت میشوند. - کنشهای ذخیرهسازی بستهای (
PopulateStorageActionوAssertStorageAction) دربرابر درستیسنجیهای بیصدا تقویت شدهاند تا اطمینان حاصل شود که درصورت نبودن دادههای موردانتظار، آزمایشها بهطور قطعی ناموفق میشوند. - اکنون هماهنگکنندههای آزمایش سمت میزبان بهدرستی از خرابیهای کنش درونباندی گزارششده توسط دستگاه پیروی میکنند و آنها را نادیده نمیگیرند.
- مشکل مربوط به جمعیت ردیف پایگاه داده با کدگذاری درصدی قالب سیم
'values'پایگاه داده برطرف شد، که از خرابی دادهها درطول انتقال بار مفید جلوگیری میکند. - آسیبپذیریهای امنیتی در
androidx.test.backup:backup-hostبا ارتقای وابستگیها برطرف شد.
نسخه 1.0.0-alpha01
۲۳ سپتامبر ۲۰۲۶
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 و اجرای ناهمگام JavaListenableFutureپشتیبانی میکند.-
BackupRestoreExtension: افزونه JUnit 5 Jupiter که پارامترهایBackupRestoreControllerرا حلوفصل و به روشهای آزمایش تزریق میکند. جلسههای ADB مستقل یا مشترک را مدیریت میکند، فایلهای APK آزمایششده و آزمایشی را بهطور خودکار نصب میکند، صفحههای قفل دستگاه و محافظهای کلید را برای باز کردن قفل فضای ذخیرهسازی محافظتشده با اطلاعات کاربری رد میکند، و جداسازی محیط امن آزمایشی را اعمال میکند. 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 Direct)،CLOUD_ENCRYPTED(نسخه پشتیبان ابری با رمزگذاری سرتاسر سمت کارخواه)،CLOUD_UNENCRYPTED(نسخه پشتیبان ابری استاندارد)، وLOCAL(نسخه پشتیبان سیستم فایل محلی آفلاین).@Deviceو@Isolation: حاشیهنویسیهای میزبان برای انتخاب دستگاههای متصل منطبق با شماره سریالهای خاص، سطوح API، یا نقشهای چنددستگاهی، و پیکربندی خطمشیهای جداسازی جعبه امن بین اجراهای آزمایشی (IsolationPolicy.AUTOMATICدر مقابلIsolationPolicy.MANUAL).