גיבוי לבדיקה

  
מסגרת בדיקה אוטומטית שמאמתת שנתוני המשתמשים ופרטי הכניסה לחשבון נשמרים באופן בטוח אחרי שדרוגי מכשירים ושחזורים מהענן.
העדכון האחרון גרסה יציבה גרסה מועמדת להפצה גרסת בטא גרסת אלפא
‫21 באוקטובר 2026 - - - ‎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"
}

Kotlin

dependencies {
    implementation("androidx.test.backup:backup:1.0.0-alpha03")
    implementation("androidx.test.backup:backup-host:1.0.0-alpha03")
}

מידע נוסף זמין במאמר הוספת יחסי תלות ב-build.

משוב

המשוב שלכם עוזר לנו לשפר את Jetpack. נשמח לדעת אם גיליתם בעיות חדשות או אם יש לכם רעיונות איך לשפר את הספרייה הזו. כדאי לעיין בבעיות הידועות בספרייה הזו לפני שמדווחים על בעיה. כדי להוסיף הצבעה בדיווח על בעיה קיימת, לוחצים על כפתור הכוכב.

יצירת דיווח על בעיה חדשה

מידע נוסף זמין במאמרי העזרה בנושא Issue Tracker.

גרסה 1.0 של בדיקת שחזור גיבוי אוטומטי

גרסה 1.0.0-alpha03

‫21 באוקטובר 2026

‫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 ישירות ל-constructors של מחלקות בדיקה ול-methods של הגדרת @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 כדי לטפל במטענים ייעודיים (payloads) גדולים של בדיקות בלי לקרוס, להשהות את מנפה הבאגים כש-waitForDebugger מופעל, למצוא את מריץ הבדיקות בשמות של חבילות APK מותאמות אישית לבדיקה ולמנוע דליפה של דגלים פנימיים של מריץ הבדיקות לפעולות במכשיר. (Ic73bd, Iede17, I1d172, I84c15)
  • שיפרנו את היציבות והמהירות של הבדיקות על ידי שיתוף של חיבור ADB יחיד במהלך הבדיקה, התקנת קובצי APK רק פעם אחת בכל מכשיר, והצגת הודעת שגיאה ברורה כשקובץ APK לא מותקן או מופעל. (I62717, Iabf75, I14e6f, I4c3da5, I54077, Iee84e)
  • תוקנה הבעיה שגרמה ל-fetchDeviceLogs לכתוב קובצי יומן ריקים, והופסקה יצירת דוחות כוזבים על כשלים בהרצות בדיקה שבוטלו. (I736c4, I7b199, Ia847e)
  • ניקינו את יחסי התלות של backup-host כך ש-adblib זמין ישירות למתקשרים, וספריות פנימיות של רישום ביומן או בדיקה לא מתנגשות יותר עם ה-classpath של הפרויקט. (I6e822, Iba9a4, Ib4ec9)

גרסה 1.0.0-alpha02

‫7 באוקטובר 2026

‫androidx.test.backup:backup:1.0.0-alpha02 ו-androidx.test.backup:backup-host:1.0.0-alpha02 מופצים. גרסה ‎1.0.0-alpha02 מכילה את השמירות האלה.

שינויים ב-API

  • מפתחות המטען הייעודי (payload) מתועדים עכשיו בתור BackupActionInputKeys,‏ BackupActionOutputKeys ו-BackupActionValues, ומחליפים את הקבועים ב-BackupDeviceAction. הוספנו את הפונקציות BackupDeviceActionResult.success() ו-failure(), ואת ה-accessors‏ isSuccess ו-errorMessage. (Ibd493)

תיקוני באגים

  • עכשיו BackupRestoreController.clearAppData זורק IOException כש-pm clear לא מדווח על הצלחה, במקום להמשיך בלי להודיע. (I61556)
  • ארגומנטים של מעטפת שמועברים אל BackupRestoreController להפעלה במכשיר עוברים עכשיו הוספה של תווי בריחה (escape) בצורה נכונה, כדי למנוע הזרקת פקודות ולוודא שנתיבי קבצים עם רווחים מטופלים בצורה מאובטחת.
  • הקשחנו את פעולות האחסון המצורפות (PopulateStorageAction ו-AssertStorageAction) כדי למנוע מעבר של אימותים שקטים, ולוודא שהבדיקות נכשלות באופן מוחלט כשחסרים נתונים צפויים.
  • מעכשיו, מתזמני בדיקות מצד המארח מכבדים כראוי כשלים בפעולות בתוך הלהקה שדווחו על ידי המכשיר, במקום להתעלם מהם.
  • תוקנה בעיה באכלוס שורות במסד הנתונים על ידי קידוד באחוזים של פורמט ה-wire של מסד הנתונים 'values', כדי למנוע פגיעה בנתונים במהלך העברת המטען הייעודי (payload).
  • טופלו נקודות חולשה באבטחה ב-androidx.test.backup:backup-host באמצעות שדרוג של יחסי תלות.

גרסה 1.0.0-alpha01

‫23 בספטמבר 2026

‫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 וגם בהפעלה אסינכרונית של Java ListenableFuture.
  • ‫BackupRestoreExtension: תוסף JUnit 5 Jupiter שמפענח פרמטרים של BackupRestoreController ומזריק אותם לשיטות בדיקה. מנהל סשנים עצמאיים או משותפים של ADB, מתקין באופן אוטומטי קובצי APK שנבדקו וקובצי APK לבדיקה, מבטל את נעילת המסך ואת מנגנוני הנעילה של המכשיר כדי לפתוח את הנעילה של אחסון שמוגן באמצעות פרטי כניסה, ואוכף את הבידוד של ארגז החול לבדיקה.
  • ‫BackupRestoreTestRunner: כלי להרצת בדיקות Instrumentation במכשיר שפועל בתוך ארגז החול של האפליקציה. פותר ומפעיל באופן דינמי הטמעות של BackupDeviceAction שנשלחו על ידי מתזמנים מארחים, ומפנה בבטחה מטען ייעודי (payload) גדול של תוצאות JSON לדיסק כדי למנוע מגבלות על מאגר הנתונים הזמני של עסקאות Binder.
  • ‫BackupDeviceAction: החוזה לפעולות מותאמות אישית בצד המכשיר שמתבצעות ישירות בתוך ארגז החול של אפליקציית היעד במהלך הוספת נתונים (PHASE_POPULATE) או אימות לאחר שחזור (PHASE_VERIFY).
  • StorageDomain: מתארים עם סוגים מוגדרים (Preference,‏ Database,‏ TextFile ו-BinaryFile) שמשמשים לצד פונקציות עזר מובנות לפעולות (PopulateStorageAction ו-AssertStorageAction) כדי להזין נתונים באופן אוטומטי ולבצע טענות נכונות (assert) ב-SharedPreferences, במסדי נתונים של SQLite ובקבצים גולמיים בהקשרים של אחסון שמוגן באמצעות פרטי כניסה (CE) ואחסון שמוגן באמצעות המכשיר (DE) בלי קוד סטנדרטי.
  • ‫BackupTransportMode: מציין את טופולוגיית ההעברה של הגיבוי בפלטפורמה שצריך לדמות במהלך סבבי הבדיקה, כולל DEVICE_TO_DEVICE (העברת מכשיר פיזי באמצעות USB או Wi-Fi ישיר), CLOUD_ENCRYPTED (גיבוי בענן עם הצפנה מקצה לקצה בצד הלקוח), CLOUD_UNENCRYPTED (גיבוי רגיל בענן) ו-LOCAL (גיבוי אופליין של מערכת קבצים מקומית).
  • ‫@Device ו-@Isolation: הערות מארח לבחירת מכשירים מחוברים שתואמים למספרים סידוריים ספציפיים, לרמות API או לתפקידים של מכשירים מרובים, ולהגדרת כללי מדיניות של בידוד ארגז חול בין הרצות בדיקה (IsolationPolicy.AUTOMATIC לעומת IsolationPolicy.MANUAL).