نسخه پشتیبان آزمایشی
| جدیدترین بهروزرسانی | نسخه پایدار | نامزد انتشار | انتشار نسخه بتا | نسخه آلفا |
|---|---|---|---|---|
| ۲۱ اکتبر ۲۰۲۶ | - | - | - | 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).