टेस्ट बैकअप

  
ऑटोमेटेड टेस्टिंग फ़्रेमवर्क, ताकि यह पुष्टि की जा सके कि डिवाइस अपग्रेड करने और क्लाउड से डेटा वापस पाने के दौरान, उपयोगकर्ता का डेटा और खाते के क्रेडेंशियल सुरक्षित रहें.
नया अपडेट स्टेबल रिलीज़ रिलीज़ कैंडिडेट बीटा रिलीज़ ऐल्फ़ा रिलीज़
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 कोरूटीन और Java ListenableFuture एसिंक्रोनस एक्ज़ीक्यूशन, दोनों के साथ काम करता है.
  • 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).