टेस्ट बैकअप
| नया अपडेट | स्टेबल रिलीज़ | रिलीज़ कैंडिडेट | बीटा रिलीज़ | ऐल्फ़ा रिलीज़ |
|---|---|---|---|---|
| 21 अक्टूबर, 2026 | - | - | - | 1.0.0-alpha03 |
डिपेंडेंसी का एलान करना
टेस्ट बैकअप पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी. ज़्यादा जानकारी के लिए, Google की Maven रिपॉज़िटरी पढ़ें.
अपने ऐप्लिकेशन या मॉड्यूल के लिए, 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") }
डिपेंडेंसी के बारे में ज़्यादा जानने के लिए, बिल्ड डिपेंडेंसी जोड़ना लेख पढ़ें.
सुझाव/राय दें या शिकायत करें
आपके सुझाव, शिकायत या राय से Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको कोई नई समस्या मिलती है या आपके पास इस लाइब्रेरी को बेहतर बनाने के लिए सुझाव हैं, तो हमें बताएं. कृपया नई समस्या सबमिट करने से पहले, इस लाइब्रेरी में शामिल मौजूदा समस्याओं को देखें. स्टार बटन पर क्लिक करके, किसी मौजूदा समस्या के लिए वोट किया जा सकता है.
ज़्यादा जानकारी के लिए, Issue Tracker का दस्तावेज़ देखें.
Automated Backup Restore Test Version 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) @Nestedटेस्ट क्लास में, बाहरी टेस्ट क्लास से@BackupRestoreConfigऔर@Isolationसेटिंग इनहेरिट करने की सुविधा जोड़ी गई है. (Ia45a8)BackupRestoreControllerको सीधे टेस्ट क्लास कंस्ट्रक्टर और@BeforeAllसेटअप के तरीकों में इंजेक्ट करने की सुविधा जोड़ी गई है. (I6e822, Ia2ebd)androidx.test.backup.device.serial.{role}प्रॉपर्टी का इस्तेमाल करके, मल्टी-डिवाइस टेस्ट में किसी खास डिवाइस को@Deviceभूमिका के लिए पिन करने की सुविधा जोड़ी गई है. (I484be)
गड़बड़ियां ठीक की गईं
performBackupऔरperformRestoreको ठीक किया गया, ताकि बैकअप को स्किप करने या खाली होने, बैकअप सेवा में गड़बड़ी होने या लोकल बैकअप संग्रह किसी दूसरे ऐप्लिकेशन या डिवाइस से जुड़ा होने पर, टेस्ट बिना किसी सूचना के पास होने के बजाय तुरंत फ़ेल हो जाएं. (I7673d, I478ad, I0b989, I9a0ea, I79567)- बैकअप, डेटा वापस पाने, डिवाइस पर की जाने वाली कार्रवाइयों, और क्लीनअप के चरणों में टाइम आउट लागू करके, जवाब न देने वाले डिवाइसों पर टेस्ट के हमेशा के लिए हैंग होने की समस्या को ठीक किया गया. (I10661, I9cdee, If5f92)
performBackupमें, टेस्ट रन पूरा होने पर जनरेट की गई बैकअप फ़ाइलों को मिटाने की समस्या को ठीक किया गया. अब टेस्ट खत्म होने के बाद, बैकअप संग्रह डिस्क पर सेव रहते हैं. (I8c13f)- डेटाबेस टेस्ट हेल्पर (
StorageDomain.Database) को ठीक किया गया, ताकिnullवैल्यू को सही तरीके से सेव और जांचा जा सके. साथ ही, टेस्ट डेटा को सीड करते समय मौजूदा लाइनों को ओवरराइट किया जा सके, अमान्य टेबल कॉन्फ़िगरेशन का पहले ही पता लगाया जा सके, और डेटाबेस की कोई ज़रूरी फ़ाइल मौजूद न होने पर गड़बड़ी का मैसेज दिखाया जा सके. (Ib4767, Iddf87, I19c43, Ie8d78, I8bc18) - डेटा टाइप को सटीक तरीके से सुरक्षित रखने और
nullया हटाई गई सेटिंग की जांच करने के लिए,SharedPreferencesटेस्ट हेल्पर को ठीक किया गया. (I8456d9, I1d0fc2) runOnDeviceको ठीक किया गया, ताकि क्रैश हुए बिना बड़े टेस्ट पेलोड को मैनेज किया जा सके. साथ ही,waitForDebuggerचालू होने पर डीबगर को रोका जा सके, कस्टम टेस्ट APK पैकेज के नामों में टेस्ट रनर को ढूंढा जा सके, और इंटरनल रनर फ़्लैग को डिवाइस की कार्रवाइयों में लीक होने से रोका जा सके. (Ic73bd, Iede17, I1d172, I84c15)- टेस्ट रन के दौरान एक ही ADB कनेक्शन शेयर करके, टेस्ट की स्थिरता और स्पीड को बेहतर बनाया गया है. साथ ही, हर डिवाइस पर APKs को सिर्फ़ एक बार इंस्टॉल किया जाता है. इसके अलावा, अगर कोई APK इंस्टॉल या लॉन्च नहीं हो पाता है, तो इसकी जानकारी साफ़ तौर पर दी जाती है. (I62717, Iabf75, I14e6f, I4c3da5, I54077, Iee84e)
fetchDeviceLogsमें खाली लॉग फ़ाइलें लिखने की समस्या को ठीक किया गया. साथ ही, रद्द किए गए टेस्ट रन से, गड़बड़ी की गलत रिपोर्ट जनरेट होने की समस्या को ठीक किया गया. (I736c4, I7b199, Ia847e)backup-hostडिपेंडेंसी को हटा दिया गया है, ताकिadblibसीधे तौर पर कॉलर के लिए उपलब्ध हो. साथ ही, इंटरनल लॉगिंग या टेस्ट लाइब्रेरी अब आपके प्रोजेक्ट के क्लासपाथ से नहीं टकराएंगी. (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 में ये बदलाव शामिल हैं.
एपीआई में बदलाव
- पेलोड कुंजियों को अब
BackupActionInputKeys,BackupActionOutputKeys, औरBackupActionValuesके तौर पर दस्तावेज़ में शामिल किया गया है. येBackupDeviceActionपर मौजूद कॉन्स्टेंट की जगह लेंगी.BackupDeviceActionResult.success()औरfailure()फ़ैक्ट्री जोड़ी गईं. साथ ही,isSuccessऔरerrorMessageऐक्सेसर जोड़े गए. (Ibd493)
गड़बड़ियां ठीक की गईं
BackupRestoreController.clearAppDataअबIOExceptionको थ्रो करता है, जबpm clearसफलता की रिपोर्ट नहीं करता है. इसके बजाय, वह चुपचाप जारी रहता है. (I61556)- डिवाइस पर एक्ज़ीक्यूशन के लिए,
BackupRestoreControllerको पास किए गए शेल आर्ग्युमेंट अब सही तरीके से एस्केप किए जाते हैं. इससे कमांड इंजेक्शन को रोका जा सकता है. साथ ही, यह पक्का किया जा सकता है कि स्पेस वाले फ़ाइल पाथ को सुरक्षित तरीके से मैनेज किया जाए. - बंडल किए गए स्टोरेज ऐक्शन (
PopulateStorageActionऔरAssertStorageAction) को बेहतर बनाया गया है, ताकि बिना किसी सूचना के पुष्टि करने की प्रोसेस पास न हो. इससे यह पक्का किया जा सकेगा कि ज़रूरी डेटा मौजूद न होने पर, टेस्ट पूरी तरह से फ़ेल हो जाएं. - होस्ट-साइड टेस्ट ऑर्केस्ट्रेटर, अब डिवाइस से रिपोर्ट की गई इन-बैंड ऐक्शन की गड़बड़ियों को अनदेखा करने के बजाय, उन्हें सही तरीके से हैंडल करते हैं.
- डेटाबेस की लाइन में डेटा भरने से जुड़ी समस्या को ठीक किया गया. इसके लिए, डेटाबेस
'values'वायर फ़ॉर्मैट को पर्सेंट-एन्कोड किया गया. इससे पेलोड ट्रांसफ़र के दौरान डेटा खराब होने से बचा. - डिपेंडेंसी को अपग्रेड करके,
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 (यह होस्ट कंप्यूटर पर चलता है, ताकि एडीबी पर बैकअप, वाइप, और रीस्टोर पास को व्यवस्थित किया जा सके) और androidx.test.backup:backup (यह ऐप्लिकेशन के डेटा को भरने और उसकी पुष्टि करने के लिए डिवाइस पर चलता है).
BackupRestoreController: होस्ट की ओर से इस्तेमाल किया जाने वाला मुख्य इंटरफ़ेस. इसका इस्तेमाल, टेस्ट डिवाइस के लिए बैकअप, वाइप, रीस्टोर, और पुष्टि करने के वर्कफ़्लो को कंट्रोल करने के लिए किया जाता है. यहrunBackupRestoreFlowजैसी आसान पाइपलाइन के साथ-साथ, बारीकी से की जाने वाली कार्रवाइयां (performBackup,performRestore,clearAppData,fetchDeviceLogs, औरrunOnDevice) उपलब्ध कराता है. यह Kotlin कोरूटीन और JavaListenableFutureएसिंक्रोनस एक्ज़ीक्यूशन, दोनों के साथ काम करता है.BackupRestoreExtension: JUnit 5 Jupiter एक्सटेंशन, जो टेस्ट के तरीकों मेंBackupRestoreControllerपैरामीटर को रिज़ॉल्व और इंजेक्ट करता है. यह स्टैंडअलोन या शेयर किए गए एडीबी सेशन मैनेज करता है. साथ ही, टेस्ट किए गए और टेस्ट किए जाने वाले APK अपने-आप इंस्टॉल करता है. इसके अलावा, क्रेडेंशियल से सुरक्षित किए गए स्टोरेज को अनलॉक करने के लिए, डिवाइस की लॉकस्क्रीन और कीगार्ड को खारिज करता है. साथ ही, टेस्ट सैंडबॉक्स को अलग करने की सुविधा लागू करता है.BackupRestoreTestRunner: उपयोगकर्ता के डिवाइस पर मौजूदInstrumentationटेस्ट रनर, जो ऐप्लिकेशन सैंडबॉक्स में काम करता है. यह होस्ट ऑर्केस्ट्रेटर से भेजे गएBackupDeviceActionके अनुरोधों को डाइनैमिक तौर पर हल और लागू करता है. साथ ही, बड़े JSON रिज़ल्ट पेलोड को सुरक्षित तरीके से डिस्क पर रीडायरेक्ट करता है, ताकि बाइंडर ट्रांज़ैक्शन बफ़र की सीमाओं को रोका जा सके.BackupDeviceAction: डेटा सीडिंग (PHASE_POPULATE) या रीस्टोर करने के बाद पुष्टि (PHASE_VERIFY) के दौरान, टारगेट ऐप्लिकेशन सैंडबॉक्स में सीधे तौर पर लागू होने वाली कस्टम डिवाइस-साइड कार्रवाइयों के लिए कॉन्ट्रैक्ट.StorageDomain: पहले से मौजूद ऐक्शन हेल्पर (PopulateStorageActionऔरAssertStorageAction) के साथ इस्तेमाल किए जाने वाले स्ट्रॉन्गली टाइप्ड डिस्क्रिप्टर (Preference,Database,TextFile, औरBinaryFile). इनका इस्तेमाल, क्रेडेंशियल प्रोटेक्टेड (सीई) और डिवाइस प्रोटेक्टेड (डीई) स्टोरेज, दोनों में बॉयलरप्लेट के बिनाSharedPreferences, SQLite डेटाबेस, और रॉ फ़ाइलों को अपने-आप सीड और असर्ट करने के लिए किया जाता है.BackupTransportMode: इससे प्लैटफ़ॉर्म के बैकअप ट्रांसपोर्ट टोपोलॉजी के बारे में पता चलता है, ताकि टेस्ट पास के दौरान सिम्युलेट किया जा सके. इसमेंDEVICE_TO_DEVICE(यूएसबी या Wi-Fi Direct के ज़रिए फ़िज़िकल डिवाइस माइग्रेशन),CLOUD_ENCRYPTED(क्लाइंट-साइड पर पूरी तरह सुरक्षित क्लाउड बैकअप),CLOUD_UNENCRYPTED(स्टैंडर्ड क्लाउड बैकअप), औरLOCAL(ऑफ़लाइन लोकल फ़ाइल सिस्टम बैकअप) शामिल हैं.@Deviceऔर@Isolation: ये होस्ट एनोटेशन, कनेक्ट किए गए उन डिवाइसों को चुनने के लिए हैं जो खास सीरियल नंबर, एपीआई लेवल या मल्टी-डिवाइस रोल से मैच करते हैं. साथ ही, टेस्ट रन के बीच सैंडबॉक्स आइसोलेशन की नीतियों को कॉन्फ़िगर करने के लिए हैं (IsolationPolicy.AUTOMATICबनामIsolationPolicy.MANUAL).