גיבוי לבדיקה
| העדכון האחרון | גרסה יציבה | גרסה מועמדת להפצה | גרסת בטא | גרסת אלפא |
|---|---|---|---|---|
| 21 באוקטובר 2026 | - | - | - | 1.0.0-alpha03 |
הצהרה על יחסי תלות
כדי להוסיף תלות בגיבוי לבדיקה, צריך להוסיף את מאגר Maven של Google לפרויקט. מידע נוסף זמין במאמר בנושא מאגר ה-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 של מחלקות בדיקה ול-setup 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. נוספו פונקציות ה-factoryBackupDeviceActionResult.success()ו-failure(), וגם פונקציות ה-accessorisSuccessו-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 מכילה את השמירות האלה.
תכונות בגרסה הראשונית
הגרסה הראשונה של Automated Backup and Restore Testing framework ל-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 שנבדקו וקובצי 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).