15 जनवरी, 2019
WorkManager
WorkManager 1.0.0-beta02 रिलीज़ किया गया. इस रिलीज़ में कुछ गड़बड़ियां ठीक की गई हैं.
गड़बड़ियां ठीक की गईं
- एक किनारे वाला मामला तय किया गया जहां समय-समय पर हर अंतराल में एक से ज़्यादा बार काम हो सकता था Android 6.0 (एपीआई लेवल 23) वाले डिवाइसों पर. b/121998363
- Android 5.1 (एपीआई) चलाने वाले डिवाइसों पर
ConcurrentModificationExceptionठीक किया गया लेवल 22) या उससे कम. b/121345393 - डिवाइसों पर पाबंदियां पूरी न होने पर, काम को गलत तरीके से किए जाने की समस्या को ठीक किया गया जो Android 5.1 (एपीआई लेवल 22) या इससे पहले के वर्शन पर काम कर रहे हों. b/122578012
- कुछ मामलों में, काम पूरा होने की प्रोसेस को ऑप्टिमाइज़ किया गया है, ताकि तेज़ी से काम किया जा सके. b/122358129
- कई इंस्टेंस में संभावित रेस स्थितियों के बारे में पता करने के लिए बदलाव जोड़ा गया
का
LiveDataहै, जिसे WorkManager इस्तेमाल करता है. 1.1.1-rc01के बजाय,Roomडिपेंडेंसी1.1.1का इस्तेमाल करने के लिए ले जाया गया; यह वर्शन एक जैसे हैं. b/122578011
19 दिसंबर, 2018
WorkManager
WorkManager 1.0.0-beta01 रिलीज़ किया गया. इस रिलीज़ में, एपीआई में कोई बदलाव नहीं किया गया है; आने वाले समय में, WorkManager को उम्मीद है कि अगले वर्शन तक एपीआई एक जैसा काम करेगा. ऐसा तब तक होगा, जब तक कोई गंभीर समस्या न हो. इस रिलीज़ में कुछ गड़बड़ियां ठीक की गई हैं.
गड़बड़ियां ठीक की गईं
- माता-पिता के पूरे हो चुके काम के बाद, रद्द किए गए बच्चे अब नहीं चलेंगे. b/120811767
- सही तरीके से शुरू की गई लॉगिंग क्लास (मुख्य रूप से टेस्ट के दौरान दिखती हैं).
18 दिसंबर, 2018
नेविगेशन
नेविगेशन 1.0.0-alpha09 रिलीज़ हो गया है. इस रिलीज़ में, एपीआई में हुए ऐसे बदलाव शामिल हैं जो नुकसान पहुंचा सकते हैं;
कृपया नीचे दिया गया नुकसान पहुंचाने वाले बदलाव सेक्शन देखें.
हमने ऐसे टूल का डेवलपमेंट जारी नहीं रखा है
android.arch.navigation:navigation-testing आर्टफ़ैक्ट. हालांकि यह साबित हो चुका है
हमारा सुझाव है कि NavController की इंटरनल टेस्टिंग के लिए, यह सुविधा काम की हो
टेस्टिंग की वैकल्पिक रणनीतियां, जैसे कि NavController इंस्टेंस को मॉक करना
ताकि यह पुष्टि की जा सके कि सही navigate() कॉल किए जा रहे हैं. यह
तरीके के बारे में यहां विस्तार से बताया गया है
AndroidDevSummit 2018 में सिंगल ऐक्टिविटी पर बात
इसके अलावा, हम खास तौर पर टेस्टिंग से जुड़े अतिरिक्त दस्तावेज़ों पर काम करेंगे
खोलें.
नई सुविधाएं
menuCategory="secondary"वालेMenuItemअब बैक पॉप नहीं होंगेNavigationUIतरीकों के साथ इस्तेमाल करने पर स्टैक करें. b/120104424AppBarConfigurationअब आपको फ़ॉलबैक सेट करने की सुविधा देता हैOnNavigateUpListenerइंस्टेंस जिसेnavController.navigateUp()के लौटने पर कॉल किया जाएगाfalse. b/79993862 b/120690961
नुकसान पहुंचाने वाले बदलाव
argType="reference"के साथ<argument>का इस्तेमाल करने पर नेविगेशन का इस्तेमाल नहीं किया जा सकता रॉ रिसॉर्स आईडी देने के बजाय, रेफ़रंस को पार्स करता है. b/111736515onNavDestinationSelected()अब डिफ़ॉल्ट रूप से, आपके नेविगेशन ग्राफ़ की शुरुआती मंज़िल पर वापस पॉप-अप होता है, इससे वेsetupतरीकों से एक जैसे हो जाते हैं. जोड़ें बैक स्टैक को पॉप-अप होने से बचाने के लिए, अपनेMenuItemपरmenuCategory="secondary". aosp/852869- जनरेट की गई
Argsक्लास केfromBundle()तरीकों के लिए, अब वैल्यू शून्य नहीं होनी चाहिए शून्य वालेBundleके बजायBundleaosp/845616
गड़बड़ियां ठीक की गईं
- आर्ग्युमेंट को अब डीप लिंक से सही
argTypeके तौर पर सही तरीके से पार्स किया गया है हमेशा स्ट्रिंग के रूप में b/110273284 - नेविगेशन अब अपने सार्वजनिक संसाधनों को सही तरीके से एक्सपोर्ट करता है b/121059552
- Safe Args अब Android Gradle प्लग इन 3.4 कैनरी 4 और इसके बाद वाले वर्शन के साथ काम करता है बी/119662045
12 दिसंबर, 2018
WorkManager
WorkManager 1.0.0-alpha13 रिलीज़ किया गया. इस रिलीज़ में एपीआई का एक छोटा सा बदलाव शामिल है. यह Kotlin के कुछ उपयोगकर्ताओं के लिए मददगार होगा.
एपीआई में किए गए बदलाव
androidx.work.ResultकोListenableWorkerकी अंदरूनी क्लास में ले जाया गया है. यह Kotlin की टॉप-लेवलResultक्लास के साथ कॉन्फ़्लिक्टिंग को रीफ़ैक्टर करने से रोकता है. यह एपीआई में किया गया बदलाव तोड़ने वाला है. b/120564418
तीसरे पक्ष के एपीआई में हुए बदलाव
androidx.work.ResultकोListenableWorkerकी अंदरूनी क्लास में ले जाया गया है.
6 दिसंबर, 2018
पृष्ठांकन
पेजिंग 2.1.0-rc01 को 2.1.0-beta01 के किसी बदलाव के बिना रिलीज़ किया गया.
नेविगेशन
नेविगेशन 1.0.0-alpha08 रिलीज़ हो गया है. इस रिलीज़ में, एपीआई में हुए ऐसे बदलाव शामिल हैं जो नुकसान पहुंचा सकते हैं;
कृपया नीचे दिया गया नुकसान पहुंचाने वाले बदलाव सेक्शन देखें.
नई सुविधाएं
NavigationUIतरीकों के साथ इस्तेमाल किए जाने पर, डेस्टिनेशन लेबल अब अपने-आप काम करेंगे अपनेandroid:labelमें{argName}इंस्टेंस को सही तर्क से बदलें b/80267266- नेविगेशन अब सपोर्ट लाइब्रेरी 28.0.0 पर निर्भर करता है b/120293333
नुकसान पहुंचाने वाले बदलाव
OnNavigatedListenerका नाम बदलकरOnDestinationChangedListenerकर दिया गया है b/118670572OnDestinationChangedListenerअबBundleआर्ग्युमेंट को भी पास करता है aosp/837142app:clearTaskऔरapp:launchDocumentएट्रिब्यूट और उनसे जुड़े एट्रिब्यूट तरीके हटा दिए गए हैं. अपने ग्राफ़ के रूट के साथapp:popUpToका इस्तेमाल करें, ताकि पिछली गतिविधियों से सभी डेस्टिनेशन हटाएं. b/119628354ActivityNavigator.ExtrasअबBuilderपैटर्न का इस्तेमाल करता है और इसकी क्षमता जोड़ता है कोईIntent.FLAG_ACTIVITY_फ़्लैग सेट करें aosp/828140NavController.onHandleDeepLinkका नाम बदलकरhandleDeepLinkकर दिया गया है aosp/836063- ऐसी कई क्लास और तरीके जिनका इस्तेमाल सब-क्लास करने के लिए नहीं किया जाता है, जैसे कि
NavOptions,NavInflater,NavDeepLinkBuilder, औरAppBarConfiguration,finalबना दिए गए हैं aosp/835681 NavHostFragment.setGraph()का इस्तेमाल न किया जा सकने वाला तरीका हटा दिया गया है aosp/835684NavigationUI.navigateUp(DrawerLayout, NavController)का अब इस्तेमाल नहीं किया जा सकने वाला तरीका को निकाल दिया गया है. aosp/835684- फ़्रैगमेंट बनाने की सुविधा को
FragmentNavigatorमें ले जाया गया. इससे, ये काम करना आसान हो गया हैFragmentFactoryमें फ़्रैगमेंट बनाना. b/119054429 NavGraphNavigatorका कंस्ट्रक्टर अबContextनहीं लेता है aosp/835340- NavigatorProvider अब
की जगह एक क्लास है.
NavigatorProviderको, इन्होंने लौटायाgetNavigatorProvider()ने इसकी सुविधाओं में बदलाव नहीं किया है. aosp/830660 NavDestination.navigate()को हटा दिया गया है.Navigatorपरnavigate()को कॉल करें आज़माएं. aosp/830663Navigatorकी ज़रूरी रीफ़ैक्टरिंग,OnNavigatorNavigatedListenerकी ज़रूरत खत्म हो गई है और इसके बजाय,navigateसे वहNavDestinationवापस लौटेगा जिस पर नेविगेट किया गया था.Navigatorइंस्टेंस अबNavControllerपर पॉप इवेंट नहीं भेज सकते. इन बातों पर ध्यान देंOnBackPressedCallbackका इस्तेमाल करके 'वापस जाएं' बटन दबना बंद करें औरnavController.popBackStack()को कॉल करें. aosp/833716
गड़बड़ियां ठीक की गईं
- डेस्टिनेशन में
<navigation>एलिमेंट होने पर,popUpToअब लगातार काम करता है b/116831650 - ऐसी कई गड़बड़ियां ठीक की गईं, जिनकी वजह से
IllegalArgumentExceptionआई नेस्ट किए गए ग्राफ़ का इस्तेमाल करते समय b/118713731 b/113611083 b/113346925 b/113305559 <activity>डेस्टिनेशन के लिएdataPatternएट्रिब्यूट की वैल्यू अब अपने-आप भर जाएगीtoString()को कॉल करके गैर-स्ट्रिंग आर्ग्युमेंट से तर्क जोड़े जा सकते हैं b/120161365
सुरक्षित आर्ग
- Safe Args के साथ सीरियल वाले ऑब्जेक्ट काम कर सकते हैं. इनमें Enum वैल्यू भी शामिल हैं. Enum टाइप
क्लास के नाम के बिना एनम लिटरल का इस्तेमाल करके डिफ़ॉल्ट वैल्यू सेट कर सकता है
(उदाहरण के लिए,
app:defaultValue="READ") b/111316353 - Safe Args के साथ काम करने वाले सभी टाइप के अरे का इस्तेमाल किया जा सकता है b/111487504
- Safe Args अब रिसॉर्स डायरेक्ट्री के सब-फ़ोल्डर को अनदेखा करता है b/117893516
- जहां भी ज़रूरी हो, Safe Args में
@Overrideएनोटेशन जोड़ा जाता है b/117145301
5 दिसंबर, 2018
WorkManager
WorkManager 1.0.0-alpha12 रिलीज़ किया गया. इस रिलीज़ में, नुकसान पहुंचाने वाले एपीआई में हुए कुछ बदलाव शामिल हैं; कृपया नीचे दिया गया ब्रेकिंग एपीआई में बदलाव सेक्शन देखें. इस वर्शन को हमारे पहले बीटा वर्शन के तौर पर रिलीज़ किए जाने की संभावना है. alpha12 में दस्तावेज़ों से जुड़े ज़्यादा अपडेट भी मिलते हैं.
एपीआई में किए गए बदलाव
- एक नया आर्टफ़ैक्ट,
work-rxjava2,RxWorkerके बारे में बताता है. यह एकListenableWorkerहै, जोSingle<Payload>की ज़रूरत है. - Firebase JobDispatcher की सुविधा जल्द ही बंद होने की वजह से इसे हटा दिया गया है. इसका मतलब है कि हम बीटा वर्शन में काम करेंगे. इस वजह से, अब
work-firebaseआर्टफ़ैक्ट को अपडेट नहीं किया जाएगा. हम आने वाले समय में, कोई अन्य विकल्प जोड़ने पर काम कर रहे हैं. PayloadकोResultमें मिलाया गया.Resultअब "सील की गई क्लास" है इसे तीन तरीके से लागू किया जा सकता है, जिन्हेंResult.success()(याResult.success(Data)),Result.failure()(याResult.failure(Data)), औरResult.retry()से डाउनलोड किया जा सकता है. आपकेListenableFutureको अबPayloadके बजायResultनतीजे मिल रहे हैं.Workerके पासDataआउटपुट के लिए गैटर और सेटर तरीके नहीं हैं. यह बदलाव नुकसान पहुंचा सकता है.- धीमे ट्रिगर होने वाले कॉन्टेंट यूआरआई के साथ बेहतर तरीके से काम करने के लिए,
Constraints.Builder.setTriggerContentMaxDelay(long, TimeUnit)औरConstraints.Builder.setTriggerContentUpdateDelay(long, TimeUnit)के साथ-साथ वैरिएंट भी जोड़े गए. b/119919774 WorkRequest.Builder.setBackoffCriteria(BackoffPolicy, Duration)वैरिएंट जोड़ा गया. इस तरीके का इस्तेमाल करने के लिए, एपीआई 26 का इस्तेमाल करना ज़रूरी है.Operation.await()औरListenableFuture.await()Kotlin एक्सटेंशन के तरीके जोड़े गए.Operation.getException()का नाम बदलकरOperation.getThrowable()किया गया. यह बदलाव नुकसान पहुंचा सकता है.ContentUriTriggersक्लास और इसे रेफ़र करने वाले तरीकों का इस्तेमाल, अब सार्वजनिक तौर पर नहीं किया जा सकता. यह बदलाव नुकसान पहुंचा सकता है.- एपीआई को आसान बनाने के लिए,
WorkManager,WorkContinuation, औरOneTimeWorkRequestमें वैरिग के बाकी तरीकों को हटा दिया गया है. बिल्ड से जुड़ी किसी भी समस्या को ठीक करने के लिए, अपने मौजूदा वैरर्ग कोArrays.asList(...)के साथ रैप करें. हम अब भी हर तरीके के एक-आकलन वाले वर्शन शामिल करते हैं. यह बदलाव नुकसान पहुंचा सकता है. WorkContinuation.combine(OneTimeWorkRequest, *)वैरिएंट हटाए गए. वे एक जटिल एपीआई दिखा रहे थे;combineके मौजूदा तरीके समझने में ज़्यादा आसान हैं. यह बदलाव नुकसान पहुंचा सकता है.
गड़बड़ियां ठीक की गईं
- प्री-Marshmallow लागू करने की प्रोसेस, पहले से चल रहे टास्क के खत्म होने की प्रोसेस से रिकवर करने के लिए अब ज़्यादा भरोसेमंद हो गई है.
observeForeverके ज़रिए मॉनिटर की गईLiveDataको WorkManager की मदद से ट्रैक किया जाता है. यह रूम लाइब्रेरी वाले समाधान का बैकपोर्ट है. b/74477406- अगर क्रम से लगाए गए ऑब्जेक्ट का साइज़ तय सीमा से ज़्यादा होता है, तो
Data.Builder.build()अब अपवाद दिखाता है. ऐसा पहले सिर्फ़ बैकग्राउंड थ्रेड पर होता था, जहां इसे ठीक से मैनेज नहीं किया जा सकता था. - रोका गया काम बनाम रद्द किया गया काम;
getWorkInfoById(),ListenableWorker.onStopped()के दौरानCANCELLEDStateके साथWorkInfoदिखाएगा. ListenableWorkerमेंnullResultको पूरा नहीं हुआ के तौर पर मानें. बी/120362353- एपीआई 24 पर चलने वाले शील्ड टैबलेट के लिए, अनुमान के हिसाब से किए गए बदलाव, जिनमें कभी-कभी
IllegalArgumentExceptionका इस्तेमाल किया जाता है. b/119484416
तीसरे पक्ष के एपीआई में हुए बदलाव
- Firebase JobDispatcher की सुविधा जल्द ही बंद होने की वजह से इसे हटा दिया गया है. इसका मतलब है कि हम बीटा वर्शन में काम करेंगे. इस वजह से, अब
work-firebaseआर्टफ़ैक्ट को अपडेट नहीं किया जाएगा. हम आने वाले समय में, कोई अन्य विकल्प जोड़ने पर काम कर रहे हैं. PayloadकोResultमें मिलाया गया.Resultअब "सील की गई क्लास" है इसे तीन तरीके से लागू किया जा सकता है, जिन्हेंResult.success()(याResult.success(Data)),Result.failure()(याResult.failure(Data)), औरResult.retry()से डाउनलोड किया जा सकता है. आपकेListenableFutureको अबPayloadके बजायResultनतीजे मिल रहे हैं.Workerके पासDataआउटपुट के लिए गैटर और सेटर तरीके नहीं हैं.Operation.await()औरListenableFuture.await()Kotlin एक्सटेंशन के तरीके जोड़े गए.Operation.getException()का नाम बदलकरOperation.getThrowable()किया गया.ContentUriTriggersक्लास और इसे रेफ़र करने वाले तरीकों का इस्तेमाल, अब सार्वजनिक तौर पर नहीं किया जा सकता.- एपीआई को आसान बनाने के लिए,
WorkManager,WorkContinuation, औरOneTimeWorkRequestमें वैरिग के बाकी तरीकों को हटा दिया गया है. बिल्ड से जुड़ी किसी भी समस्या को ठीक करने के लिए, अपने मौजूदा वैरर्ग कोArrays.asList(...)के साथ रैप करें. हम अब भी हर तरीके के एक-आकलन वाले वर्शन शामिल करते हैं. WorkContinuation.combine(OneTimeWorkRequest, *)वैरिएंट हटाए गए. वे एक जटिल एपीआई दिखा रहे थे;combineके मौजूदा तरीके समझने में ज़्यादा आसान हैं.
4 दिसंबर, 2018
रूम
2.1.0-alpha03 कमरे की बुकिंग रद्द कर दी गई है, जिसमें कोरूटीन की सुविधा उपलब्ध है. साथ ही, कई गड़बड़ियां ठीक की गई हैं.
एपीआई में किए गए बदलाव
@Fts3/@Fts4में FTStokenizerअब Enum के बजाय स्ट्रिंग लेता है. इससे रूम, कस्टम टोकनाइज़र का इस्तेमाल कर पाता है.FtsOptionsमें पहले से मौजूद टोकनाइज़र, अब भी स्ट्रिंग कॉन्सटेंट के तौर पर बताए गए हैं. b/119234881
नई सुविधाएं
- कोरोआउट: डीएओ तरीकों को अब सस्पेंड फ़ंक्शन के तौर पर इस्तेमाल किया जा सकता है. रूम में सस्पेंड फ़ंक्शन की सुविधा के लिए, एक नया आर्टफ़ैक्ट रिलीज़ किया गया है,
room-coroutines. b/69474692 @Insert,@Deleteया@Updateके साथ एनोटेट किए गए डीएओ तरीके, अब रिटर्न टाइप के तौर परListenableFutureके साथ काम करते हैं. b/119418331
गड़बड़ियां ठीक की गईं
- वह गड़बड़ी ठीक की गई है जिसकी वजह से कमरा,
@EntityकीignoredColumnsप्रॉपर्टी में, कॉलम वाला कंस्ट्रक्टर ढूंढने की कोशिश गलत तरीके से कर सकता था. b/119830714 - उस गड़बड़ी को ठीक किया गया है जिसकी वजह से रूम, डीएओ तरीके के पैरामीटर को जनरेट किए गए लागू करने के दौरान, फ़ाइनल के तौर पर मार्क नहीं करता. b/118015483
- उस गड़बड़ी को ठीक किया गया है जिसकी वजह से खास सिंबल वाली किसी क्वेरी पर गड़बड़ी की रिपोर्ट करने पर रूम का प्रोसेसर क्रैश हो जाता था. b/119520136
- उस गड़बड़ी को ठीक किया गया है जहां रूम,
INएक्सप्रेशन के आर्ग्युमेंट के तौर पर,Collectionलागू करने के अन्य तरीकों को अस्वीकार कर देता है. b/119884035 - उस गड़बड़ी को ठीक किया गया है जिसमें रूम से वापस आने वाले LiveData में कचरा इकट्ठा होता है और उसे हमेशा के लिए देखा जाता है. इसकी वजह से, नया डेटा नहीं निकलता. b/74477406
- लॉक के विवाद को कम करने के लिए,
RoomDatabaseके क्लोज़ लॉक को अपडेट किया गया. b/117900450
8 नवंबर, 2018
WorkManager
WorkManager 1.0.0-alpha11 रिलीज़ किया गया. इस रिलीज़ में कई बदलाव किए गए हैं, जो beta पर स्थिर एपीआई में बदल जाएंगे.
इस रिलीज़ में नुकसान पहुंचाने वाले एपीआई से जुड़े बदलाव किए गए हैं; कृपया नीचे दिया गया ब्रेकिंग एपीआई में बदलाव सेक्शन देखें.
एपीआई में किए गए बदलाव
work-runtime-ktx, एक नयाCoroutineWorkerपेश करता है.WorkStatusका नाम बदलकरWorkInfoकर दिया गया है.getStatusतरीके के सभी वैरिएंट के नाम बदलकर, संबंधितgetWorkInfoवैरिएंट. यह बदलाव नुकसान पहुंचा सकता है.ListenableWorker.onStopped()में अब बूलियन तर्क स्वीकार नहीं किया जाता. इससे पता चलता है किWorkRequestका इस्तेमाल रद्द किया गया है या नहीं.WorkManagerअब यह अंतर नहीं करता. यह बदलाव नुकसान पहुंचा सकता है.androidx.work.testपैकेज का नाम बदलकरandroidx.work.testingपैकेज कर दिया गया है. यह बदलाव नुकसान पहुंचा सकता है.Constraintsपर मौजूद सेटर अब सार्वजनिक एपीआई का हिस्सा नहीं हैं. यह बदलाव नुकसान पहुंचा सकता है.WorkerParameters.getTriggeredContentUris()औरWorkerParameters.getTriggeredContentAuthorities()ने पहले अरे दिखाया है. अब इन तरीकों से संग्रह वापस आते हैं. यह बदलाव नुकसान पहुंचा सकता है.ListenableWorker.onStartWork()का नाम बदलकरListenableWorker.startWork()कर दिया गया है. यह बदलाव नुकसान पहुंचा सकता है.WorkStatusका कंस्ट्रक्टर अब सार्वजनिक एपीआई का हिस्सा नहीं है. यह बदलाव नुकसान पहुंचा सकता है.Configuration.getMaxJobSchedulerID()औरConfiguration.getMinJobSchedulerID()का नाम बदलकरConfiguration.getMinJobSchedulerId()किया गया औरConfiguration.getMaxJobSchedulerId(). यह बदलाव नुकसान पहुंचा सकता है.- एपीआई के एर्गोनॉमिक्स को बेहतर बनाने के लिए, Public API में कई
@NonNullएनोटेशन जोड़े गए हैं. - यूनीक
OneTimeWorkRequestको सूची में जोड़ने के लिए,WorkContinuationबनाए बिनाWorkManager.enqueueUniqueWork()एपीआई जोड़ें. WorkManagerपरenqueueऔरcancelतरीकों के सभी वैरिएंट, अबOperationका नया टाइप दिखाते हैं. यह बदलाव नुकसान पहुंचा सकता है.enqueueके सभी वैरिएंट, अबWorkRequestके लिए varrc को स्वीकार नहीं करते. यह बदलाव नुकसान पहुंचा सकता है. इसके बजाय, संग्रह का इस्तेमाल करें. मौजूदा कोड में बदलाव करने के लिए,Arrays.asList()का इस्तेमाल किया जा सकता है. हमने ऐसा एपीआई प्लैटफ़ॉर्म और तरीकों की संख्या को कम करने के लिए किया है.- हर प्रोसेस के लिए एक से ज़्यादा बार
initializeWorkManagerकी कोशिश करने पर, अबIllegalStateExceptionमिलेगा. यह बदलाव नुकसान पहुंचा सकता है.
गड़बड़ियां ठीक की गईं
work-runtime-ktxआर्टफ़ैक्ट में मौजूदWorkRequest.BuilderअबListenableWorkerका इस्तेमाल करते हैं. b/117666259 को ठीक करता है- पक्का करें कि
PeriodicWorkके लिए, रनटाइम का अगला वर्शन आने वाले समय का हो. b/118204399 को ठीक करता है - ऐप्लिकेशन स्टार्टअप पर WorkManager का इस्तेमाल करते समय, संभावित डिस्क I/O हटाएं. b/117796731 को ठीक किया गया
WorkConstraintsTrackerमें रेस कंडिशन ठीक करें. android-workmanager/issues/56 को ठीक करता है
तीसरे पक्ष के एपीआई में हुए बदलाव
WorkStatusका नाम बदलकरWorkInfoकर दिया गया है.getStatusतरीके के सभी वैरिएंट के नाम बदलकर, संबंधितgetWorkInfoवैरिएंट.ListenableWorker.onStopped()में अब बूलियन तर्क स्वीकार नहीं किया जाता. इससे पता चलता है किWorkRequestका इस्तेमाल रद्द किया गया है या नहीं.WorkManagerअब यह अंतर नहीं करता.androidx.work.testपैकेज का नाम बदलकरandroidx.work.testingपैकेज कर दिया गया है.Constraintsपर मौजूद सेटर अब सार्वजनिक एपीआई का हिस्सा नहीं हैं.WorkerParameters.getTriggeredContentUris()औरWorkerParameters.getTriggeredContentAuthorities()ने पहले अरे दिखाया है. अब इन तरीकों से संग्रह वापस आते हैं.ListenableWorker.onStartWork()का नाम बदलकरListenableWorker.startWork()कर दिया गया है.WorkStatusका कंस्ट्रक्टर अब सार्वजनिक एपीआई का हिस्सा नहीं है.Configuration.getMaxJobSchedulerID()औरConfiguration.getMinJobSchedulerID()का नाम बदलकरConfiguration.getMinJobSchedulerId()किया गया औरConfiguration.getMaxJobSchedulerId().WorkManagerपरenqueueऔरcancelतरीकों के सभी वैरिएंट, अबOperationका नया टाइप दिखाते हैं.enqueueके सभी वैरिएंट, अबWorkRequestके लिए varrc को स्वीकार नहीं करते.- हर प्रोसेस के लिए एक से ज़्यादा बार
initializeWorkManagerकी कोशिश करने पर, अबIllegalStateExceptionमिलेगा.
1 नवंबर 2018
पृष्ठांकन
पेजिंग 2.1.0-beta01 को 2.1.0-alpha01 के किसी बदलाव के बिना रिलीज़ किया गया.
30 अक्टूबर, 2018
रूम
2.1.0-alpha02 कमरे की बुकिंग रद्द कर दी गई है, जिसमें कई गड़बड़ियां ठीक की गई हैं और एक नई सुविधा जोड़ी गई है.
नई सुविधाएं
@Relationमें@DatabaseViewका रेफ़रंस देने के लिए सहायता जोड़ी गई. b/117680932
गड़बड़ियां ठीक की गईं
- उस गड़बड़ी को ठीक किया गया है जहां Rx रिटर्न टाइप से सदस्यता लेने और डिस्पोज़ करने पर, रूम मुख्य थ्रेड में डिस्क I/O करेगा. बी/117201279
- उस गड़बड़ी को ठीक किया गया है जिसकी वजह से रूम, Kotlin इकाई की क्लास में फ़ील्ड के लिए सही टाइप का कन्वर्टर नहीं ढूंढ पाता था. बी/111404868
- उस गड़बड़ी को ठीक किया गया है जहां रूम,
DAOइंटरफ़ेस को लागू करने के लिए गलत कोड जनरेट करेगा. इसमें Kotlin डिफ़ॉल्ट में ऐसा तरीका शामिल होगा जिसमें कोई आर्ग्युमेंट नहीं होता. b/117527454 - रूम का SQLite ग्रामर पार्सर अपडेट किया गया. इसमें परफ़ॉर्मेंस से जुड़ी ऐसी समस्या ठीक की गई है जिसकी वजह से बिल्ड में ज़्यादा समय लग सकता है. b/117401230
29 अक्टूबर, 2018
नेविगेशन
गड़बड़ी ठीक करने और एपीआई में बदलाव करने के बाद, नेविगेशन 1.0.0-alpha07 को रिलीज़ किया गया.
नई सुविधाएं
- नया AppBarConfiguration क्लास की मदद से यह तय किया जा सकता है कि किन डेस्टिनेशन को टॉप-लेवल माना जाए गंतव्य. अपडेट किए गए दस्तावेज़ देखें देखें. b/117333663
- अब आप अपने ग्राफ़ के शुरुआती डेस्टिनेशन पर आर्ग्युमेंट पास कर सकते हैं b/110300470
- डीप लिंक अब पीरियड, हाइफ़न, और प्लस साइन वाली कस्टम स्कीम के साथ काम करते हैं. b/112806402
नुकसान पहुंचाने वाले बदलाव
navigation-testing-ktxमॉड्यूल को फ़ोल्ड किया गया हैnavigation-testing artifactको अब पब्लिश नहीं किया जाएगा.navigation-testingआर्टफ़ैक्ट, अब Kotlin स्टैंडर्ड पर निर्भर है लाइब्रेरी. एपीआई को बदल दिया गया है, ताकि वह Kotlin के साथ बेहतर तरीके से काम कर सके पर बताई हैं, लेकिन Java में लिखे गए टेस्ट के लिए इसका इस्तेमाल जारी रखा जा सकता है.- मेटाडेटा मेनिफ़ेस्ट में रजिस्टर किए गए नेविगेशन ग्राफ़ अब काम नहीं करते. b/118355937
- <activity> के साथ अब कार्रवाइयां अटैच नहीं की जा सकतीं गंतव्य. aosp/785539
गड़बड़ियां ठीक की गईं
- डीप लिंक अब क्वेरी पैरामीटर को सही तरीके से पार्स करते हैं. बी/110057514
- ऐक्टिविटी डेस्टिनेशन अब सभी ऐनिमेशन को सही तरीके से लागू करते हैं और उससे बाहर निकलते हैं. b/117145284
- कस्टम का इस्तेमाल करते समय कॉन्फ़िगरेशन में बदलाव होने के बाद होने वाले क्रैश को ठीक किया गया नेविगेटर. बी/110763345
सुरक्षित आर्ग
- सुरक्षित आर्ग की अब 'Android Gradle प्लग इन 3.2.1' पर तय निर्भर करता है. b/113167627
- इनर क्लास के लिए अब निर्देश जनरेट किए जा सकते हैं. बी/117407555
- <include> के लिए निर्देश जनरेट करने से जुड़ी समस्या ठीक की गई ग्राफ़. b/116542123
12 अक्टूबर, 2018
पृष्ठांकन
पेजिंग 2.1.0-alpha01 को दो प्रमुख सुविधाओं के साथ रिलीज़ किया गया है - पेज ड्रॉप करना, और हर आर्टफ़ैक्ट के लिए KTX एक्सटेंशन लाइब्रेरी - साथ ही कई अन्य API बदलाव और बग समाधान.
एपीआई में किए गए बदलाव
- मेमोरी में लोड किए गए आइटम की संख्या को सीमित करने के लिए,
PagedList.Config.Builder.setMaxSize()को जोड़ा गया. androidx.paging.Config()कोPagedList.Config.Builderके लिए Kotlin विकल्प के तौर पर जोड़ा गयाandroidx.paging.PagedList()कोPagedList.Builderके लिए Kotlin विकल्प के तौर पर जोड़ा गयाDataSourceFactory.toLiveData()कोLivePagedListBuilderके लिए Kotlin विकल्प के तौर पर जोड़ा गयाRxPagedListBuilderके लिए, Kotlin के विकल्पों के तौर परDataSourceFactory.toObservable()औरtoFlowable()को जोड़ा गया- PagedList को बदले जाने पर, उसे सुनने के लिए
AsyncPagedListDiffer.addPagedListListener()को जोड़ा गया. b/111698609 - जोड़ा गया
PagedListAdapter.onCurrentListChanged()वैरिएंट, जो पुराने और नई सूची में पास हो गया है. हालांकि, पिछला वैरिएंट अब काम नहीं करता. - ऐसे
PagedListAdapter/AsyncPagedListDiffer.submitList()वैरिएंट जोड़े गए जो अलग-अलग होने के बाद, अतिरिक्त कॉलबैक लेता है, जो पेज वाली सूची के दिखने पर/जब पेज पर जाता है, तो ट्रिगर होता है. यह आपको PagedList की अदला-बदली करने के तरीके को यूज़र इंटरफ़ेस (यूआई) के अन्य अपडेट के साथ सिंक करने की सुविधा देता है. b/73781068 - आपको यह बताने के लिए
PagedList.getLoadedCount()को जोड़ा गया है कि मेमोरी में कितने आइटम हैं. ध्यान दें कि प्लेसहोल्डर बंद होने पर, रिटर्न वैल्यू हमेशा.size()के बराबर होती है.
गड़बड़ियां ठीक की गईं
- सूचियों का फिर से इस्तेमाल किए जाने पर फ़र्क़ दिखाते समय, रेस की कंडिशन ठीक की गई b/111591017
- इंडेक्स के अमान्य होने पर,
PagedList.loadAround()अबIndexOutOfBoundsExceptionदिखाता है. पहले, यह किसी दूसरे अपवाद की वजह से क्रैश हो सकता था. - ऐसे मामले को ठीक किया गया है जिसमें बहुत ही छोटे शुरुआती लोड साइज़ के साथ-साथ, कोई बदलाव न किया गया डेटा लोड न होने की वजह से b/113122599 अब और लोड न हो
11 अक्टूबर, 2018
WorkManager
WorkManager 1.0.0-alpha10 को, डेवलपर के कंट्रोल किए गए एसिंक्रोनस काम के लिए रिलीज़ किया गया है. इस रिलीज़ में नुकसान पहुंचाने वाले एपीआई से जुड़े बदलाव किए गए हैं; कृपया नीचे दिया गया ब्रेकिंग एपीआई में बदलाव सेक्शन देखें.
हमारा अनुमान है कि WorkManager अपनी ऐल्फ़ा पीरियड के आखिरी चरण में पहुंच रहा है. हमें उम्मीद है कि बीटा वर्शन में एपीआई की परफ़ॉर्मेंस हमेशा बेहतर होगी. इसलिए, कृपया थोड़ा समय निकालकर हमारे समस्या को ट्रैक करने वाले टूल पर अपनी शिकायत दर्ज करें.
एपीआई में किए गए बदलाव
- पहले के सभी
deprecatedतरीकों और क्लास को हटा दिया गया है. खास तौर पर, यह डिफ़ॉल्टWorkerकंस्ट्रक्टर है. एपीआई में किया गया यह बदलाव नुकसान पहुंचा सकता है. NonBlockingWorkerका नाम बदलकरListenableWorkerकर दिया गया है. अब इसे सार्वजनिक तौर पर दिखाया जा सकता है. साथ ही, इसका इस्तेमाल किया जा सकता है.ListenableWorkerसे आपको एक ऐब्स्ट्रैक्ट तरीके का ऐक्सेस मिलता है,ListenableFuture<Payload> onStartWork()जिसे मुख्य थ्रेड पर कॉल किया जाता है. एसिंक्रोनस रूप से काम शुरू और प्रोसेस करने का काम आप पर है. काम पूरा हो जाने के बाद, आपकोListenableFutureको सही तरीके से अपडेट कर देना चाहिए.ListenableFutureके रेफ़रंस को लागू करने की जानकारी,alpha02केFuturesपैकेज में दी गई है (WorkManagerसेक्शन के नीचे देखें).Worker,ListenableWorkerकी समयावधि में काम करता है. साथ ही, यह अब भी पहले की तरह काम करता है. इसमें, ऐब्स्ट्रैक्टResult doWork()तरीके का इस्तेमाल किया गया है.- कुछ तरीकों और सदस्यों को
WorkerसेListenableWorkerमें शफ़ल किया गया. - हम जल्द ही, उन
ListenableWorkerके लिए रेफ़रंस लागू करने की सुविधा देंगे जो Kotlin कोरूटीन (स्टेबल वर्शन के रिलीज़ होने के बाद) और RxJava2 का इस्तेमाल करते हैं.
- इंटरफ़ेस
WorkerFactoryऔर लागू करने के सहीDefaultWorkerFactoryतरीकों कोWorkerFactoryनाम के ऐब्सट्रैक्ट क्लास में मर्ज कर दिया गया है. लागू करने से यह पक्का होता है कि रिफ़्लेक्शन पर आधारित डिफ़ॉल्ट व्यवहार को, उपयोगकर्ता के बनाए गए किसी भीWorkerFactoryइंस्टेंस के लिए आखिरी बार के तौर पर कॉल किया जाए. यह बदलाव नुकसान पहुंचा सकता है. WorkManager.synchronous(),WorkContinuation.synchronous(), और इससे जुड़े सभी तरीके हटाए गए.ListenableFuture<Void>को एपीआई में, कई तरीकों के रिटर्न टाइप के तौर पर जोड़ा गया. एपीआई में किया गया यह बदलाव नुकसान पहुंचा सकता है.- अब आप
ListenableFutureका इस्तेमाल करके सिंक्रोनस रूप से पा सकते हैं और निगरानी कर सकते हैं. उदाहरण के लिए,voidरिटर्न के लिएWorkManager.enqueue()का इस्तेमाल किया गया; अब यहListenableFuture<Void>दिखाता है. कार्रवाई पूरी होने के बाद, कोड चलाने के लिएListenableFuture.addListener(Runnable, Executor)याListenableFuture.get()को कॉल करें. - ध्यान दें कि ये
ListenableFutureआपको नहीं बताते कि कार्रवाई सफल हुई या नहीं; सिर्फ़ इतना ही नहीं होता. इस जानकारी को ढूंढने के लिए, आपको अब भी WorkManager के अलग-अलग तरीकों को चेन करना होगा. - हम इन ऑब्जेक्ट पर
cancel()कॉल को अनदेखा कर देते हैं, क्योंकि वे भ्रम की स्थिति पैदा करते हैं और इस बारे में तर्क करना मुश्किल होता है (क्या आप कार्रवाई या उसके नतीजे को रद्द कर रहे हैं?). यहFutureके कानूनी समझौते के तहत है. - सिंक किए गए
getStatus*तरीकों के साथ समानता बनाए रखने के लिए, हमनेListenableFutureवैरिएंट दिए हैं. साथ ही, उन मौजूदा वैरिएंट का नाम बदल दिया है जोLiveDataके बारे में बताते हैं, ताकि उनका नाम साफ़ तौर पर "LiveData" हो जाए नाम के हिस्से के तौर पर शामिल करें (उदाहरण के लिए,getStatusesByIdLiveData(UUID)). यह एपीआई में किया गया बदलाव नुकसान पहुंचाने वाला है.
- अब आप
गड़बड़ियां ठीक की गईं
- डुप्लीकेट
androidx-annotations.proफ़ाइलों से जुड़ी अल्फ़ा09 समस्या को ठीक कर दिया गया है.exclude 'META-INF/proguard/androidx-annotations.pro'को अपनी ग्रेड फ़ाइल से मिटाकर, पिछले रिलीज़ नोट से इस समस्या को हल किया जा सकता है. - नए
Workerकंस्ट्रक्टर को बनाए रखने के लिए, ProGuard कॉन्फ़िगरेशन जोड़े गए. b/116296569 - जहां काम
REPLACEदिनों में हुआ था उस रेस कंडिशन में, संभावितNullPointerExceptionको ठीक करें. b/116253486 और b/116677275 WorkContinuation.combine()अब दो या ज़्यादा के बजाय एक या उससे ज़्यादाWorkContinuationस्वीकार करता है. b/117266752
तीसरे पक्ष के एपीआई में हुए बदलाव
- पहले के सभी
deprecatedतरीकों और क्लास को हटा दिया गया है. खास तौर पर, यह डिफ़ॉल्टWorkerकंस्ट्रक्टर है. - इंटरफ़ेस
WorkerFactoryऔर लागू करने के सहीDefaultWorkerFactoryतरीकों कोWorkerFactoryनाम के ऐब्सट्रैक्ट क्लास में मर्ज कर दिया गया है. WorkManager.synchronous()औरWorkContinuation.synchronous()हटाए गए.WorkManager.getStatus*()तरीकों से अबListenableFutures नतीजे मिलते हैं.WorkManager.getStatus*LiveData(),LiveDataरिटर्न करते हैं.
भावी सौदे
फ़्यूचर्स 1.0.0-alpha02 रिलीज़ हो गई है.
एपीआई में किए गए बदलाव
- डेवलपर अब
ListenableFutureको आसानी से लागू करने के लिए,ResolvableFutureऔरAbstractResolvableFutureका इस्तेमाल कर सकते हैं.
8 अक्टूबर, 2018
रूम
2.1.0-alpha01 कमरे की बुकिंग रद्द हो गई है.
नई सुविधाएं
- एफ़टीएस: रूम अब FTS3 या FTS4 टेबल को मैप करने वाली इकाइयों के साथ काम करता है.
@Entityके साथ एनोटेट की गई क्लास के साथ अब@Fts3या@Fts4के साथ जानकारी भी जोड़ी जा सकती है, ताकि मैपिंग पूरे टेक्स्ट वाली खोज टेबल के साथ क्लास का एलान किया जा सके. एनोटेशन के तरीकों के ज़रिए, एफ़टीएस के विकल्प भी उपलब्ध हैं. इन्हें अपनी पसंद के मुताबिक बनाया जा सकता है. b/62356416 - व्यू: रूम अब सेव की गई क्वेरी के तौर पर क्लास का एलान करने की सुविधा देता है. इसे @DatabaseView एनोटेशन का इस्तेमाल करके, व्यू भी कहा जाता है. b/67033276
- ऑटो वैल्यू: रूम अब AutoValue एनोटेट की गई क्लास को इकाइयों और POJO के तौर पर एलान करने की सुविधा देता है. रूम के एनोटेशन
@PrimaryKey,@ColumnInfo,@Embedded, और@Relationको अब ऑटो वैल्यू के तौर पर एनोटेट किए गए क्लास के ऐब्सट्रैक्ट तरीकों में दिखाया जा सकता है. ध्यान दें कि इन एनोटेशन के साथ@CopyAnnotationsभी होना चाहिए, ताकि रूम उन्हें सही तरीके से समझ सके. b/62408420 - अतिरिक्त Rx रिटर्न टाइप के लिए सहायता:
@Insert,@Deleteया@Updateके साथ एनोटेट किए गए डीएओ तरीके अब Rx रिटर्न टाइपCompletable,Single<T>, औरMaybe<T>के साथ काम करते हैं. b/63317956 @Relationके साथ नहीं बदले जा सकने वाले टाइप: रूम को सेट करने लायक बनाने के लिए, पहले@Relationएनोटेट किए गए फ़ील्ड की ज़रूरत होती थी. हालांकि, अब ये कंस्ट्रक्टर पैरामीटर हो सकते हैं.enableMultiInstanceInvalidation: एक ही डेटाबेस फ़ाइल का इस्तेमाल करके, RoomDatabase के कई इंस्टेंस में अमान्य होने को चालू करने के लिए,RoomDatabase.Builderमें एक नया एपीआई है. एक से ज़्यादा इंस्टेंस अमान्य करने का यह तरीका, कई प्रोसेस के साथ भी काम करता है. b/62334005fallbackToDestructiveMigrationOnDowngrade: यहRoomDatabase.Builderमें एक नया एपीआई है. डाउनग्रेड किए जाने पर, डेटाबेस अपने-आप फिर से बनता है. b/110416954ignoredColumns: यह@Entityएनोटेशन में एक नया एपीआई है. इसका इस्तेमाल करके, अनदेखा किए गए फ़ील्ड को नाम से लिस्ट किया जा सकता है. किसी इकाई पर इनहेरिट किए गए फ़ील्ड को अनदेखा करने के लिए इस्तेमाल किया जाता है. बी/63522075
एपीआई / व्यवहार में बदलाव
RoomDatabaseमेंmCallbackऔरmDatabaseअब@Deprecatedहैं. इन्हें रूम के अगले मेजर वर्शन से हटा दिया जाएगा. b/76109329
गड़बड़ियां ठीक की गईं
- दो समस्याओं को ठीक किया गया है, जिनमें गड़बड़ी वाले डेटाबेस से रूम ठीक से रिकवर नहीं हो पाता था या शुरू करने के दौरान गलत माइग्रेशन हो सकता था. b/111504749 और b/111519144
- रूम अब डेटा क्लास में Kotlin के प्राइमरी कंस्ट्रक्टर का सही तरीके से इस्तेमाल करेगा, ताकि फ़ील्ड को
varsके तौर पर बताने की ज़रूरत न पड़े. बी/105769985
1 अक्टूबर, 2018
2.0.0 कमरे की बुकिंग रद्द कर दी गई है. इसमें 2.0.0-rc01 ने कोई बदलाव नहीं किया है.
पेजिंग 2.0.0 को एक बग समाधान के साथ रिलीज़ किया गया है.
पृष्ठांकन
गड़बड़ियां ठीक की गईं
PositionalDataSourceऔर प्लेसहोल्डर b/114635383 का इस्तेमाल करके बहुत तेज़ी से स्क्रोल करने पर होने वाले क्रैश को ठीक किया गया.
21 सितंबर, 2018
लाइफ़साइकल 2.0.0 को ViewModel में 2.0.0-rc01 से एक गड़बड़ी ठीक करके रिलीज़ किया गया है.
लाइफ़साइकल
गड़बड़ियां ठीक की गईं
- ViewModel ProGuard नियम को ठीक किया गया है, जिसने कंस्ट्रक्टर को गलत तरीके से हटा दिया था b/112230489
20 सितंबर, 2018
नेविगेशन
गड़बड़ी ठीक करने और एपीआई में बदलाव करने के बाद, नेविगेशन 1.0.0-alpha06 को रिलीज़ किया गया.
नई सुविधाएं
- फ़्रैगमेंट और गतिविधि डेस्टिनेशन के लिए, शेयर किए गए एलिमेंट के ट्रांज़िशन अब b/79665225 पर काम करते हैं. ज़्यादा जानकारी के लिए, नेविगेशन आर्किटेक्चर कॉम्पोनेंट के साथ नेविगेशन लागू करना लेख पढ़ें
NavigationViewमें किसी आइटम को चुनने पर, सबसे नीचे वाली शीट b/112158843 बंद हो जाएगी
एपीआई में किए गए बदलाव
- ब्रेकिंग बदलाव: नेविगेटर
navigate()वाले तरीके में अबNavigator.Extrasपैरामीटर होता है. - NavController का
getGraph()तरीकाNonNullb/112243286 हो गया है
गड़बड़ियां ठीक की गईं
- अगर
NavigationUI.setupWithNavController()का इस्तेमाल अलग-अलग मंज़िलों से मिले व्यू के साथ किया जाता है, तो उनका व्यू लीक नहीं होता b/111961977 - नेविगेटर
onSaveState()को अब सिर्फ़ एक बार b/112627079 पर कॉल किया जाता है
सुरक्षित आर्ग
- नेविगेशन डेस्टिनेशन दिशा-निर्देश क्लास के मौजूद होने पर उनके अभिभावक की दिशा-निर्देश क्लास को बढ़ाया b/79871405
- निर्देशों और Args क्लास में अब
toString()को लागू करने के लिए, एक मददगार b/111843389 उपलब्ध है
19 सितंबर, 2018
WorkManager
WorkManager 1.0.0-alpha09 को रिलीज़ किया गया है. इसमें गड़बड़ियां ठीक की गई हैं, इंफ़्रास्ट्रक्चर से जुड़े अपडेट किए गए हैं, और एपीआई में बदलाव किए गए हैं.
आम समस्या
अगर आपको इस समस्या का सामना करना पड़ता है: "अगर ओएस इंडिपेंडेंट पाथ 'META-INF/proGuard/androidx-annotations.pro'' में एक से ज़्यादा फ़ाइलें मिली हैं", तो कृपया अपनी Gradle फ़ाइल में कुछ समय के लिए इस समस्या को हल करें. इस दौरान, हम इस समस्या को Alphabet10 में ठीक कर देंगे:
ग्रूवी
android { packagingOptions { exclude 'META-INF/proguard/androidx-annotations.pro' } }
Kotlin
android { packagingOptions { exclude("META-INF/proguard/androidx-annotations.pro") } }
गड़बड़ियां ठीक की गईं
- "100 जॉब" के लिए ज़रूरी एक और सुधार जोड़ा गया गड़बड़ी. बी/115560696
- रेस की स्थितियों की वजह से, विदेशी कुंजी की कंस्ट्रेंट से जुड़ी गड़बड़ियों के लिए, कुछ समाधान जोड़े गए. b/114705286
- मौजूदा
WorkerकोConstraintTrackingWorker.onStopped(boolean)कॉल सौंपे गए. b/114125093 - Firebase JobDispatcher के लिए सही कम से कम बैकऑफ़ देरी लागू करें. b/113304626
- थ्रेडिंग की बेहतर सुविधा, लाइब्रेरी के अंदर काम करने की गारंटी देती है.
LiveDataकी अंदरूनी तौर पर डुप्लीकेट कॉपी करने से जुड़ी संभावित समस्या को ठीक करें.
एपीआई में किए गए बदलाव
- अब
WorkManager.Configurationके हिस्से के तौर परWorkerFactoryतय करके, रनटाइम के दौरान अपनेWorkerइंस्टेंस बनाए जा सकते हैं. फ़ॉलबैक फ़ैक्ट्रीDefaultWorkerFactoryहै, जो WorkManager के पिछले वर्शन के व्यवहार से मेल खाता है.WorkerऔरNonBlockingWorkerके लिए डिफ़ॉल्ट कंस्ट्रक्टर को अब 'अब काम नहीं करता' के तौर पर मार्क कर दिया गया है. कृपया नए कंस्ट्रक्टर (Worker(Context, WorkerParameters)) का इस्तेमाल करें औरsuper(Context, WorkerParameters)को कॉल करें; WorkManager के आने वाले वर्शन, डिफ़ॉल्ट कंस्ट्रक्टर को हटा देंगे.
- हमने अपने संगठन में,
ListenableFutureआर्टफ़ैक्ट का इस्तेमाल करना शुरू कर दिया है. यह Guava पर निर्भर नहीं है. आने वाली रिलीज़ में, हम इस एपीआई में LookableFutures की सुविधा शामिल करेंगे. इस बदलाव के बाद,NonBlockingWorkerको दिखाया जा सकेगा. TestDriver.setInitialDelayMet(UUID)औरTestDriver.setPeriodDelayMet(UUID)के ज़रिए,TestDriverमें तय समय पर काम को ट्रिगर करने की सुविधा जोड़ें. b/113360060
नुकसान पहुंचाने वाले बदलाव
- डिफ़ॉल्ट
WorkerऔरNonBlockingWorkerकंस्ट्रक्टर काम नहीं करते हैं. कृपया जल्द से जल्द नए कंस्ट्रक्टर पर माइग्रेट करें. आने वाले वर्शन, डिफ़ॉल्ट कंस्ट्रक्टर को हटा देंगे.
27 अगस्त, 2018
WorkManager
WorkManager 1.0.0-alpha08 रिलीज़ हो गया है. अब उसमें गड़बड़ियां ठीक कर दी गई हैं.
गड़बड़ियां ठीक की गईं
- WorkManager कॉम्पोनेंट को सीधे तौर पर बूट करने की जानकारी के तौर पर लेबल किया गया है. इससे उन्हें डायरेक्ट बूट के दौरान चालू नहीं किया जा सकता. आने वाले समय में, हम WorkManager का ऐसा वर्शन उपलब्ध कराएंगे जिसमें सीधे तौर पर बूट करने की जानकारी हो. बी/112665532
- उस समस्या को ठीक कर दिया गया है, जिसकी दोबारा कोशिश करने पर वह काम नहीं कर रहा था. बी/112604021
- बार-बार लागू न होने वाले काम को ठीक किया गया. यह ऊपर बताई गई समस्या से जुड़ा है. बी/112859683
- जब ऐप्लिकेशन की प्रोसेस पहले से चल रही हो, तो बैकऑफ़ नीतियां लागू की जाती हैं.
Dataमें मौजूद अपवाद वाले मैसेज को ठीक कर दिया गया है, ताकि यह पता चल सके कि यह फ़ाइल 10 केबी की है.JobSchedulerकी प्रोसेसिंग पूरी होने में लगने वाले कुछ समय के लिए,Configuration.setMaxSchedulerLimit(int)की ज़्यादा से ज़्यादा वैल्यू को घटाकर 50 किया गया. b/112817355
16 अगस्त, 2018
WorkManager
WorkManager 1.0.0-alpha07 को रिलीज़ किया गया है. इसमें, गड़बड़ियां ठीक की गई हैं और एपीआई में छोटे-मोटे बदलाव किए गए हैं.
गड़बड़ियां ठीक की गईं
- नेगेटिव सीमाओं वाली संभावित SQL क्वेरी को ठीक किया गया, जो बिना सीमा वाले नतीजे दिखा सकती थी.
- जिस काम का निष्पादन पूरा हो गया है वह अब अन्य शेड्यूलर में उस काम की सभी लंबित कॉपी को ठीक से रद्द कर देता है. इस वजह से,
JobSchedulerके लिए तय सीमा पार हो गई. b/111569265 ConstraintTrackerमेंConcurrentModificationExceptionको ठीक किया गया. बी/112272753- रिटर्न टाइप एनोटेशन को
Data.getBooleanArray(String)औरData.getIntArray(String)के एनोटेशन को@NonNullके बजाय@Nullableमें बदला गया. बी/112275229
एपीआई में किए गए बदलाव
Workerअब नई क्लास,NonBlockingWorkerका विस्तार करता है. इससे, ऐप्लिकेशन के मौजूदा इस्तेमाल पर कोई असर नहीं पड़ता. आने वाले समय में,NonBlockingWorkerपर कस्टम थ्रेडिंग की सुविधा काम करती है.- रिटर्न टाइप एनोटेशन को
Data.getBooleanArray(String)औरData.getIntArray(String)के एनोटेशन को@NonNullके बजाय@Nullableमें बदला गया. बी/112275229 - Kotlin एक्सटेंशन:
Map.toWorkData()के इस्तेमाल से रोक दी गई है. साथ ही, मौजूदा एपीआई के साथ ज़्यादा काम करने के लिए, टॉप लेवलworkDataOf(vararg Pair<String, Any?>)जोड़े गए.
10 अगस्त, 2018
नेविगेशन
गड़बड़ी ठीक करने के बाद नेविगेशन 1.0.0-alpha05 रिलीज़ कर दिया गया है.
गड़बड़ियां ठीक की गईं
- गलत बैकस्टैक व्यवहार पैदा करने वाली गड़बड़ी को ठीक करें. बी/111907708
- जनरेट की गई Args क्लास में से
equals()की गड़बड़ी को ठीक किया गया. b/111450897 - Safe Args में बिल्ड फ़ेल हो जाने को ठीक करें. b/109409713
- रिसॉर्स आइडेंटिफ़ायर से जावा नाम में बदलने की समस्या को ठीक करना b/111602491
- Safe Args प्लगिन में शून्य की क्षमता के बारे में गड़बड़ी के मैसेज को ठीक किया गया.
- उन एनोटेशन को जोड़ें जो अमान्य हैं.
6 अगस्त, 2018
लाइफ़साइकल, रूम, और पेजिंग रिलीज़ वर्शन 2.0.0-rc01 के AndroidX वर्शन. सभी आर्टफ़ैक्ट में 2.0.0-beta01 से कोई बदलाव नहीं किया गया है.
1 अगस्त 2018
WorkManager
WorkManager 1.0.0-alpha06 रिलीज़ हो गया है. अब उसमें गड़बड़ियां ठीक कर दी गई हैं.
गड़बड़ियां ठीक की गईं
- काम शेड्यूल करते समय, डेटाबेस को लॉक होने से बचाएं. b/111801342
- उस गड़बड़ी को ठीक किया गया है जिसकी वजह से
PeriodicWork, बैटरी बचाएं (डोज़) मोड में होने पर शेड्यूल पर नहीं चलता. b/111469837 - उन कंस्ट्रेंट को ट्रैक करते समय रेस कंडिशन को ठीक करें जिनकी वजह से
WorkManagerक्रैश होता है. googlecodelabs/android-workmanager/issues/56 WorkRequest.Builder#build()का इस्तेमाल करते समय यूनीकWorkRequestबनाएं. b/111408337RescheduleReceiverका इस्तेमाल सिर्फ़ तब चालू करें, जबWorkRequests को इसकी ज़रूरत हो. b/111765853
24 जुलाई, 2018
WorkManager
WorkManager 1.0.0-alpha05 को रिलीज़ किया गया. इसमें ज़रूरी गड़बड़ियां ठीक की गई हैं और बदलावों को लॉग किया गया है.
एपीआई में किए गए बदलाव
WorkManager.getInstance()को अब@Nullableके बजाय@NonNullसे एनोटेट किया जाता है. इसके बजाय, मैन्युअल तौर पर शुरू करने के मामलों में, अगर सिंगलटन सही तरीके से शुरू नहीं होता है, तो यह तरीकाIllegalStateExceptionदेगा. यह एपीआई में किए गए बदलावों को ट्रैक करना.- नया एपीआई
Configuration.Builder.setMinimumLoggingLevel(int)जोड़ा गया है, जो WorkManager को जानकारी देने की क्षमता को कंट्रोल कर सकता है. डिफ़ॉल्ट रूप से, WorkManagerLog.INFOऔर इसके बाद के वर्शन में लॉग लॉग करता है. Data.getString()का हस्ताक्षर बदल दिया गया है, ताकि अब इसे डिफ़ॉल्ट वैल्यू न लेनी पड़े (यह साफ़ तौर परnullहै). एपीआई में किया गया यह बदलाव नुकसान पहुंचा सकता है.- कुछ तरीकों को
@hideके तौर पर मार्क किया गया है, जो सिर्फ़ अंदरूनी इस्तेमाल के लिए ज़रूरी हैं. इनमेंConstraintsकंस्ट्रक्टर,Data.toByteArray(), औरData.fromByteArray(byte[])शामिल हैं. एपीआई में किया गया यह बदलाव नुकसान पहुंचा सकता है.
गड़बड़ियां ठीक की गईं
- WorkManager अब ऑटो-बैकअप के ज्ञात मामलों के दौरान काम का निष्पादन नहीं करता. इस वजह से, आपका ऐप्लिकेशन क्रैश हो सकता है. बी/110564377
JobSchedulerका इस्तेमाल करते समयPeriodicWorkRequestकी डबल-शेड्यूलिंग को ठीक किया गया. बी/110798652- डिवाइस के बंद होने के बाद भी
PeriodicWorkRequestठीक से काम नहीं कर रहे थे, इस समस्या को ठीक कर दिया गया है. b/111469837 - Firebase JobDispatcher का इस्तेमाल करते समय शुरुआती देरी से जुड़ी समस्या ठीक की गई. b/111141023
- रेस की कुछ संभावित स्थितियों और समय से जुड़ी समस्याओं को ठीक किया गया.
- सही तरीके से
BroadcastReceiverखाली किए गए, जिनकी अब ज़रूरत नहीं थी. - ज़बरदस्ती बंद किए जाने के बाद ऐप्लिकेशन रीस्टार्ट होने पर, फिर से शेड्यूल करने की परफ़ॉर्मेंस ऑप्टिमाइज़ की गई.
TestScheduler.setAllConstraintsMet(UUID)को दिए गएWorkRequestके क्रम में लगाने से पहले या बाद में कॉल करने की अनुमति दी गई. b/111238024
नुकसान पहुंचाने वाले बदलाव
WorkManager.getInstance()को अब@Nullableके बजाय@NonNullसे एनोटेट किया जाता है.Data.getString()का हस्ताक्षर बदल दिया गया है, ताकि अब इसे डिफ़ॉल्ट वैल्यू न लेनी पड़े (यह साफ़ तौर परnullहै).- कुछ तरीकों को
@hideके तौर पर मार्क किया गया है, जो सिर्फ़ अंदरूनी इस्तेमाल के लिए ज़रूरी हैं. इनमेंConstraintsकंस्ट्रक्टर,Data.toByteArray(), औरData.fromByteArray(byte[])शामिल हैं.
19 जुलाई, 2018
नेविगेशन
नेविगेशन 1.0.0-alpha04 और इससे जुड़े Safe Args Gradle प्लग इन में कई एपीआई बदलाव, काम करने के तरीके में बदलाव, और गड़बड़ियां ठीक की गई हैं.
एपीआई / व्यवहार में बदलाव
- NavHostफ़्रैगमेंट, मौजूदा फ़्रैगमेंट को हमेशा मुख्य नेविगेशन फ़्रैगमेंट के तौर पर सेट करेगा. इससे यह पक्का किया जा सकेगा कि चाइल्ड फ़्रैगमेंट मैनेजर, बाहरी NavController के पॉप-अप होने से पहले पॉप-अप होंगे b/111345778
सुरक्षित आर्ग
- ब्रेकिंग बदलाव:
app:typeकोapp:argTypeमें बदल दिया गया है, ताकि ConstraintLayout 2.0.0-alpha1 b/111110548 जैसी दूसरी लाइब्रेरी में कोई समस्या न आए - Safe Args से मिले गड़बड़ी के मैसेज पर अब क्लिक किया जा सकता है b/111534438
- Args क्लास अब पुष्टि करती है कि
NonNullएट्रिब्यूट असल में शून्य नहीं हैं b/111451769 - Navguidelines और Args जनरेट की गई क्लास b/111455455 b/111455456 में,
NonNullअतिरिक्त एनोटेशन जोड़े गए हैं
गड़बड़ियां ठीक की गईं
- फ़्रैगमेंट डेस्टिनेशन b/111515685 से डीप लिंक करने के बाद, सिस्टम के 'वापस जाएं' बटन से जुड़ी समस्या को ठीक किया गया
12 जुलाई, 2018
नेविगेशन
नेविगेशन 1.0.0-alpha03 और इससे जुड़े Safe Args Gradle प्लग इन में कई एपीआई बदलाव, काम करने के तरीके में बदलाव, और गड़बड़ियां ठीक की गई हैं.
एपीआई / व्यवहार में बदलाव
- टूलबार के लिए NavigationUI.setupWithNavController से जोड़ने का तरीका b/109868820 जोड़ा गया है
- ClosesingToolbarLayout के लिए एक NavigationUI.setupWithNavController से जुड़ा तरीका जोड़ा गया b/110887183
- अगर बैक स्टैक खाली है या उससे जुड़ा डेस्टिनेशन आईडी, बैक स्टैक b/110893637 में मौजूद नहीं है, तो filebackStack() बार में गलत नतीजे देता है
- फ़्रैगमेंट मैनेजर की स्थिति सेव होने के बाद, फ़्रैगमेंट Navigator, नेविगेशन कार्रवाइयों को अनदेखा कर देता है. साथ ही, "onSaveInstanceState" के बाद यह कार्रवाई नहीं की जा सकती b/110987825
सुरक्षित आर्ग
- ब्रेकिंग बदलाव: NavNav के तरीकों के नामों में, बिना अक्षर और अंक वाले ऐक्शन और आर्ग्युमेंट के नामों को ऊंट के केस से बदल दिया जाएगा
- उदाहरण के लिए,
DemoController.index,setDemoControllerIndexb/79995048 हो जाएगा - उदाहरण के लिए,
action_show_settings,actionShowSettingsb/79642240 हो जाएगा
- उदाहरण के लिए,
- ब्रेकिंग बदलाव: आर्ग्युमेंट को डिफ़ॉल्ट रूप से 'शून्य' नहीं माना जाता है. पार्स किए जा सकने वाले आर्ग्युमेंट और स्ट्रिंग में शून्य वैल्यू को अनुमति देने के लिए,
app:nullable="true"b/79642307 जोड़ें app:type="long"का इस्तेमाल, defaultValues के तौर पर “123L” b/79563966 के तौर पर किया जा सकता हैapp:typeके लिए पूरी तरह क्वालिफ़ाइड क्लास नाम का इस्तेमाल करके, पार्स किए जा सकने वाले आर्ग्युमेंट अब काम करते हैं. डिफ़ॉल्ट तौर पर, सिर्फ़"@null"b/79563966 वैल्यू ही इस्तेमाल की जा सकती है- Args क्लास अब
equals()औरhashCode()b/79642246 को लागू करती हैं - Safe Args प्लग इन को अब लाइब्रेरी प्रोजेक्ट b/80036553 पर लागू किया जा सकता है
- Safe Args प्लग इन को अब फ़ीचर प्रोजेक्ट b/110011752 पर लागू किया जा सकता है
गड़बड़ियां ठीक की गईं
- फ़्रैगमेंट लाइफ़साइकल के तरीकों के दौरान नेविगेट करते समय आने वाली समस्याओं को ठीक किया गया b/109916080
- नेस्ट किए गए ग्राफ़ में कई बार नेविगेट करने पर आने वाली समस्याओं को ठीक किया गया b/110178671
- b/109909461 ग्राफ़ में पहले डेस्टिनेशन के साथ
setPopUpToका इस्तेमाल करते समय आने वाली समस्याओं को ठीक किया गया - उस समस्या को ठीक कर दिया गया है जिसकी वजह से सभी
app:defaultValueवैल्यू, स्ट्रिंग b/110710788 के तौर पर पास हो रही थीं - Android Gradle प्लग इन 3.2 Beta 01 के साथ बंडल किए गए aapt2 ने अब नेविगेशन एक्सएमएल फ़ाइलों में हर
android:nameएट्रिब्यूट के लिए Keep के नियम जोड़े हैं b/79874119 - डिफ़ॉल्ट फ़्रैगमेंट Navigator b/110900142 को बदलते समय मेमोरी लीक होने की समस्या ठीक की गई
2 जुलाई, 2018
लाइफ़साइकल, रूम, और पेजिंग रिलीज़ वर्शन 2.0.0-beta01 के AndroidX वर्शन.
लाइफ़साइकल
गड़बड़ियां ठीक की गईं
- सिर्फ़ लागू करने के तरीके को बनाए रखने के लिए, LifecycleObserver ProGuard नियम को बनाया गया है, न कि सबइंटरफ़ेस b/71389427
- अस्पष्ट बनाने और छोटा करने की अनुमति देने के लिए, ViewModel प्रोगार्ड नियम तय किए गए हैं
रूम
एपीआई / व्यवहार में बदलाव
- क्वेरी कहां चलाई जाएं, इसे पसंद के मुताबिक बनाने के लिए
RoomDatabase.Builder.setQueryExecutor()को जोड़ा गया - RxJava2
Observableकी सुविधा जोड़ी गई - जनरेट किए गए डीएओ और डेटाबेस को अब लागू किया जा सकता है
गड़बड़ियां ठीक की गईं
- "फ़ील्ड के लिए गेटर नहीं मिल सका" में क्लास/फ़ील्ड का नाम बताएं गड़बड़ी b/73334503
- रूम b/110197391 के पुराने वर्शन के साथ, RoomOpenHelper की पीछे की ओर काम करने की सुविधा को ठीक किया गया है
पृष्ठांकन
गड़बड़ियां ठीक की गईं
- कुछ प्रीपेंड मामलों में गायब होने वाली ठीक की गई सामग्री (प्लेसहोल्डर बंद किया गया, पोज़िशनलडेटासोर्स) b/80149146
- (पहले से
1.0.1में रिलीज़ हो चुका है) क्रैश की ऐसी समस्याएं ठीक की गई हैं जिनमेंPagedListAdapterऔरAsyncPagedListDiffer, ले जाने के इवेंट का सिग्नल नहीं दे पाएंगे. b/110711937
26 जून, 2018
पृष्ठांकन
पेज 1.0.1 को runtime में एक गड़बड़ी ठीक करके रिलीज़ किया गया है. ऐप्लिकेशन को क्रैश या फ़्रीज़ होने से बचाने के लिए, हमारा सुझाव है कि 1.0.1 का इस्तेमाल करें. पेजिंग RxJava2 1.0.1 भी रिलीज़ किया गया है और यह 1.0.0-rc1 की तरह है.
गड़बड़ियां ठीक की गईं
- उन क्रैश को ठीक किया गया है जहां
PagedListAdapterऔरAsyncPagedListDiffer, ऐप्लिकेशन को दूसरी जगह ले जाने के इवेंट का सिग्नल नहीं दे पाते. b/110711937
WorkManager
WorkManager 1.0.0-alpha04 रिलीज़ किया गया.
गड़बड़ियां ठीक की गईं
AlarmManagerपर आधारित लागू करने के तरीके का इस्तेमाल करते समय,PeriodicWorkRequestअब सही तरीके से फिर से शेड्यूल किए जाते हैं.फ़ोर्स स्टॉप या फिर से चालू होने के बाद, सभी कर्मियों को फिर से शेड्यूल करते समय संभावित ANR की गड़बड़ी ठीक की गई. b/110507716
अलग-अलग WorkManager API में, अमान्य वैल्यू वाले एनोटेशन जोड़े गए. b/110344065
वर्कर एक्ज़ीक्यूशन के दौरान, उन अपवादों को लॉग करें जिन्हें पहचाना नहीं जा सका. b/109900862
अगर आपको WorkManager के पुराने वर्शन पर रोल बैक करना है, तो इस डेटा को नुकसान पहुंचाने वाले डेटाबेस के माइग्रेशन की अनुमति दी जाती है. b/74633270
डुप्लीकेट इंप्लिसिट टैग बनाने पर होने वाले माइग्रेशन क्रैश को ठीक किया गया. ऐसा बहुत कम होता है, जो तब होती है, जब आपने खुद इस इंप्लिसिट टैग फ़ॉर्मैट का इस्तेमाल किया हो.
19 जून, 2018
रूम
1.1.1 कमरे की बुकिंग रद्द हो गई है. यह रिलीज़, रूम 1.1.1-rc1 के जैसा है.
WorkManager
WorkManager 1.0.0-alpha03 रिलीज़ किया गया.
गड़बड़ियां ठीक की गईं
AlarmManagerके आधार पर लागू करने की प्रोसेस में रेस कंडिशन को ठीक किया गया. b/80346526.डिवाइस को फिर से चालू करने के बाद,
JobSchedulerका इस्तेमाल करते समय डुप्लीकेट जॉब ठीक किए गए.कॉन्टेंट यूआरआई वाले जॉब अब फिर से चालू होने पर लागू रहते हैं. b/80234744
दस्तावेज़ से जुड़े अपडेट. b/109827628, b/109758949, b/80230748
WorkRequestको फिर से लाइन में जोड़ने के दौरान होने वाले क्रैश की समस्या ठीक की गई. b/109572353.work-runtime-ktxडिपेंडेंसी का इस्तेमाल करते समय, Kotlin कंपाइलर की चेतावनियों को ठीक किया गया.WorkManager अब
Roomवर्शन1.1.1-rc1का इस्तेमाल करता है.
एपीआई में किए गए बदलाव
WorkContinuation.getStatuses()का सिंक्रोनस वर्शनgetStatusesSync()जोड़ा गया.Workerके पास यह अंतर करने की सुविधा होती है कि उपयोगकर्ता की ओर से शुरू की गई रद्द करने की प्रोसेस और कुछ समय के लिए ओएस के अनुरोध को रोकने के लिए किए गए अनुरोधों को अलग किया जा सकता है. अगर किसी तरह के स्टॉप का अनुरोध किया गया है, तोWorker.isStopped()trueलौटाता है. जब काम साफ़ तौर पर रद्द किया गया हो, तोWorker.isCancelled()trueनतीजे दिखाता है. b/79632247एपीआई 28 पर JobParameters#getNetwork() के लिए सहायता जोड़ें. यह
Worker.getNetwork()से सार्वजनिक है.Configuration.Builder.setMaxSchedulerLimit(int maxSchedulerLimit)को जोड़ा गया, ताकि आप लागू कर सकें किJobSchedulerयाAlarmManagerको कितनी नौकरियां भेजी जा सकती हैं. यहWorkManagerको आपके सभी उपलब्धJobSchedulerस्लॉट लेने से रोकने में मदद करता है.Configuration.setJobSchedulerJobIdRange(int minJobSchedulerId, int maxJobSchedulerId)को जोड़ा गया, जोWorkManagerके इस्तेमाल के लिए सुरक्षितJobSchedulerजॉब आईडी की रेंज तय करने में मदद करता है. b/79996760Worker.getRunAttemptCount(), दिए गएWorkerके लिए मौजूदा रन काउंट दिखाता है. b/79716516WorkManager.enqueueUniquePeriodicWork(String uniqueWorkName, ExistingPeriodicWorkPolicy existingPeriodicWorkPolicy, PeriodicWorkRequest periodicWork), आपको यूनीकPeriodicWorkRequestके लिए, सूची में शामिल करने की अनुमति देता है. b/79600647WorkManager.cancelAllWork(), सभीWorkerरद्द कर देगा.WorkManagerपर निर्भर लाइब्रेरी, इंटरनल स्टेट के अतिरिक्त क्लीनअप के लिए,WorkManager.getLastCancelAllTimeMillis()का इस्तेमाल करके क्वेरी कर सकती हैं कि इस तरीके को आखिरी बार कब कॉल किया गया था.पूरे हो चुके जॉब को इंटरनल डेटाबेस से हटाने के लिए,
WorkManager.pruneWork()को जोड़ा गया. b/79950952, b/109710758
व्यवहार में बदलाव
- सभी
WorkRequestके लिए इंप्लिसिट टैग जोड़ा गया है, जोWorkerके लिए पूरी तरह क्वालिफ़ाइड क्लास का नाम है. इससे,tagका इस्तेमाल किए बिना याidके उपलब्ध न होने पर भीWorkRequestको हटाया जा सकता है. b/109572351
नुकसान पहुंचाने वाले बदलाव
Worker.WorkerResultका नाम बदलकरWorker.Resultकिया गया.Worker.onStoppedमें अब एक अतिरिक्तisCancelledपैरामीटर है, जोWorkerको साफ़ तौर पर रद्द किए जाने पर,trueपर सेट किया गया है.
7 जून, 2018
नेविगेशन 1.0.0-alpha02 रिलीज़ हो गया है.
नेविगेशन
व्यवहार में बदलाव
FragmentNavigatorअबsetReorderingAllowed(true)का इस्तेमाल करता है. बी/109826220नेविगेशन में अब यूआरएलडीकोड की मदद से, डीप लिंक के यूआरएल से पार्स किए गए आर्ग्युमेंट को डिकोड करें. b/79982454
गड़बड़ियां ठीक की गईं
फ़्रैगमेंट लाइफ़साइकल के तरीकों से नेविगेट करने का अनुरोध करते समय,
IllegalStateExceptionको ठीक किया गया. b/79632233ऐनिमेशन का इस्तेमाल करते समय फ़्लिकर (रोशनी कम-ज़्यादा होना) की समस्या को ठीक करने के लिए, नेविगेशन अब सपोर्ट लाइब्रेरी 27.1.1 पर निर्भर करता है. b/80160903
defaultNavHost="true" का इस्तेमाल करने पर
IllegalArgumentExceptionठीक किया गया चाइल्ड फ़्रैगमेंट के तौर पर सेव होता है. b/79656847NavDeepLinkBuilder के इस्तेमाल के दौरान,
StackOverflowErrorको ठीक किया गया. b/109653065नेस्ट किए गए ग्राफ़ पर वापस जाते समय,
IllegalArgumentExceptionको ठीक किया गया. b/80453447launchSingleTopका इस्तेमाल करते समय ओवरलैप होने वाले फ़्रैगमेंट से जुड़ी समस्या ठीक की गई. b/79407969नेविगेशन, अब नेस्ट किए गए ग्राफ़ के लिए सही सिंथेटिक बैक स्टैक बनाता है. b/79734195
नेविगेशन यूज़र इंटरफ़ेस (यूआई) अब नेस्ट किए गए ग्राफ़ का
MenuItemके तौर पर इस्तेमाल करने पर, सही आइटम को हाइलाइट करेगा. बी/109675998
एपीआई में किए गए बदलाव
NavOptionsमें, कार्रवाइयों और उससे जुड़े एपीआई के लिएclearTaskएट्रिब्यूट को हटा दिया गया है. b/80338878NavOptionsमें, कार्रवाइयों और उससे जुड़े एपीआई के लिएlaunchDocumentएट्रिब्यूट को हटा दिया गया है. b/109806636
24 मई, 2018
WorkManager 1.0.0-alpha02 रिलीज़ किया गया.
WorkManager
गड़बड़ियां ठीक की गईं
State.isFinished()परNullPointerExceptionको ठीक किया गया. b/79550068उस समस्या को ठीक कर दिया गया है जिसकी वजह से
Workers कोApplication.onCreate()को फिर से शेड्यूल करना था. बी/79660657उस समस्या को ठीक कर दिया गया है जिसकी वजह से, ओएस की अनुमति से ज़्यादा काम शेड्यूल किया जा सकता है. b/79497378
Workerसे जुड़े वेक लॉक के क्लीनअप को बैकग्राउंड थ्रेड में ले जाया गया.सभी रुके हुए काम पूरे होने पर,
AlarmManagerलागू करने की प्रोसेस सही तरीके से हट जाती है.क्लीनअप एसक्यूएल क्वेरी को ठीक किया गया, जिससे अंग्रेज़ी के अलावा दूसरी भाषाओं पर असर पड़ा. बी/80065360
Dataमेंfloatके लिए सहायता जोड़ी गई. b/79443878Data.Builder.putAll()अबBuilderका इंस्टेंस दिखाता है. b/79699162दस्तावेज़ों में ज़्यादा JavaScript और समाधान. b/79691663
एपीआई में किए गए बदलाव
Workerऐप्लिकेशन रोके जाने पर प्रतिक्रिया दे सकते हैं.Worker.isStopped()का इस्तेमाल करके, यह देखा जा सकता है किWorkerको रोका गया है या नहीं. कम जगह में क्लीनअप करने के लिए,Worker.onStopped()का इस्तेमाल किया जा सकता है.Worker.getTags()एपीआई,Workerसे जुड़े टैग काSetदिखाता है.उन एपीआई के लिए
javax.time.Durationओवरलोड जोड़े गए जो कुल समय औरTimeUnit, दोनों का इस्तेमाल करते हैं. इस डिवाइस को@RequiresApi(26)सुरक्षित रखता है.WorkManagerएक्सटेंशन,androidx.work.ktxपैकेज सेandroidx.workपैकेज में ले जाए गए हैं. पुराने एक्सटेंशन अब काम नहीं करते. आने वाले वर्शन में इन्हें हटा दिया जाएगा.Configuration.withExecutor()के इस्तेमाल पर रोक लगा दी गई है. इसके बजाय,Configuration.setExecutor()का इस्तेमाल करें.
16 मई, 2018
पेजिंग RxJava2 1.0.0-rc1 और रूम 1.1.1-rc1 रिलीज़ हो गए हैं. हमने काफ़ी
अगर माइग्रेशन का इस्तेमाल किया जा रहा है, तो 1.1.0 के बजाय रूम 1.1.1-rc1 का इस्तेमाल करने का सुझाव दिया जाता है.
रूम
गड़बड़ी को ठीक किया गया है, जहां माइग्रेशन शुरू करने के बाद रूम सही तरीके से काम नहीं करेगा b/79362399
पृष्ठांकन
पेजिंग rxjava2 को अब रिलीज़ कैंडिडेट की तरफ़ ले जाया जा रहा है. इसमें पहले से कोई बदलाव नहीं किया गया है
ऐल्फ़ा वर्शन
8 मई, 2018
पेजिंग 1.0, नेविगेशन और WorkManager ऐल्फ़ा, रूम 1.1, AndroidX
पेजिंग 1.0.0 और रूम 1.1.0 रिलीज़ किए गए
दो नए आर्किटेक्चर घटकों के लिए अल्फ़ा के साथ - नेविगेशन और WorkManager.
हाल ही में रिलीज़ हुए उम्मीदवारों के बाद से पेजिंग और रूम में कोई बदलाव नहीं किया गया है.
नई लाइब्रेरी: नेविगेशन
नेविगेशन विकल्प से, इन-ऐप्लिकेशन ऐप्लिकेशन बनाने के लिए फ़्रेमवर्क मिलता है
नेविगेशन. यह शुरुआती रिलीज़ 1.0.0-alpha01 है.
नई लाइब्रेरी: WorkManager
WorkManager आसानी से शेड्यूल करने और उन्हें लागू करने में मदद करता है
गारंटी के साथ, कंस्ट्रेंट की जानकारी वाले बैकग्राउंड में काम करने की सुविधा मिलती है. यह शुरुआती रिलीज़ है
1.0.0-alpha01.
AndroidX
आर्किटेक्चर के कॉम्पोनेंट, AndroidX का हिस्सा बनने वाले हैं. इनमें अपडेट भी शामिल हैं
पैकेज के नाम, आर्टफ़ैक्ट के नाम, और अन्य AndroidX लाइब्रेरी पर डिपेंडेंसी.
इन्हें अन्य वर्शन के साथ इस्तेमाल करने के लिए, वर्शन 2.0.0-alpha1 के तहत रिलीज़ किया गया है
AndroidX लाइब्रेरी पर टैप करें.
Kotlin एक्सटेंशन
ViewModel, ReactiveStreams, और Sqlite (पहले रूम का 'डेटाबेस' कॉम्पोनेंट) ये सभी कॉम्पोनेंट थे AndroidX के ऐल्फ़ा रिलीज़ के हिस्से के तौर पर, Kotlin एक्सटेंशन लाइब्रेरी को जोड़ा जा सकता है. तय सीमा में इसके अलावा, नेविगेशन और WorkManager में -ktx मॉड्यूल शामिल हैं. इनमें से सभी एक्सटेंशन मॉड्यूल कॉम्पोनेंट को जोड़ने में देखे जा सकते हैं.
2 मई, 2018
- कमरा 1.1.0 रिलीज़ उम्मीदवार
1.1.0-rc1कमरे की बुकिंग रद्द हो गई है.
गड़बड़ियां ठीक की गईं
- रूम अब Kotlin
1.2.40के साथ काम करता है. b/78328708
19 अप्रैल, 2018
पेजिंग रिलीज़ कैंडिडेट
पेजिंग 1.0.0-rc1 और रूम 1.1.0-beta3 की बुकिंग रद्द कर दी गई है.
पृष्ठांकन
हमारे पास कोई भी ज़्यादा ज्ञात समस्याएं या नई सुविधाएं नहीं हैं
पेजिंग 1.0.0 रिलीज़. 1.0.0-rc1 का इस्तेमाल करने के लिए, कृपया अपने प्रोजेक्ट अपग्रेड करें और
इसे टेस्ट करने में हमारी मदद करें, ताकि हम एक ठोस 1.0.0 शिप कर सकें.
इस रिलीज़ में कोई बदलाव नहीं किया गया है. यह 1.0.0-beta1 के जैसा है.
रूम
गड़बड़ियां ठीक की गईं
- जब Kotlin POJO किसी ऐसी रिलेशन इकाई का रेफ़रंस देता है जो कंपाइलेशन गड़बड़ी की तरह काम करती है Java में तय किया गया था b/78199923
5 अप्रैल, 2018
रूम 1.1.0-beta2, पेजिंग 1.0.0-beta1, और पेजिंग RxJava 1.0.0-alpha1 की बुकिंग रद्द कर दी गई है.
रिलीज़ कैंडिडेट के लॉन्च से पहले कुछ समय के लिए पेजिंग बीटा वर्शन में होगी.
हम Paging 1.0 के लिए, एपीआई में और बदलाव करने की योजना नहीं बना रहे हैं. साथ ही, एपीआई में कोई बदलाव करने का बार भी बहुत ज़्यादा है.
पेजिंग के लिए ऐल्फ़ा RxJava2 सपोर्ट को एक अलग वैकल्पिक मॉड्यूल के तौर पर रिलीज़ किया गया (android.arch.paging:rxjava2:1.0.0-alpha1)
और कुछ समय के लिए इसका अलग वर्शन बनाया जाएगा, जब तक यह स्थिर नहीं हो जाता.
यह नई लाइब्रेरी, LivePagedListBuilder की जगह एक RxJava2 विकल्प उपलब्ध कराती है. इससे प्रॉपर्टी को बनाया जा सकता है
Observable और Flowable, Executor के बजाय Scheduler सेकंड ले रहे हैं:
Kotlin
val pagedItems = RxPagedListBuilder(myDataSource, /* page size */ 50) .setFetchScheduler(myNetworkScheduler) .buildObservable()
Java
Observable<PagedList<Item>> pagedItems = RxPagedListBuilder(myDataSource, /* page size */ 50) .setFetchScheduler(myNetworkScheduler) .buildObservable();
पृष्ठांकन
नई सुविधाएं
RxPagedListBuilderको नएandroid.arch.paging:rxjava2आर्टफ़ैक्ट के ज़रिए जोड़ा गया है.
एपीआई में किए गए बदलाव
बिल्डर में एक्ज़िक्यूटर की भूमिका को साफ़ तौर पर दिखाने के लिए, एपीआई में बदलाव:
setBackgroundThreadExecutor()का नाम बदलकरsetFetchExecutor()किया गया (PagedList.BuilderऔरLivePagedListBuilderमें)setMainThreadExecutor()का नाम बदलकरsetNotifyExecutor()किया (PagedList.Builderमें).
PagedList.mCallbacksसदस्य को निजी के तौर पर सेट किया गया.
गड़बड़ियां ठीक की गईं
LivePagedListBuilderतय किए गए एक्ज़िक्यूटर पर, शुरुआतीPagedListलोड को ट्रिगर करता है, की जगह आर्क कॉम्पोनेंट IO थ्रेड पूल बना सकते हैं.इंटरनल
DataSourceरैपर में अमान्य व्यवहार को ठीक कर दिया गया है (DataSource.mapलागू करने के लिए इस्तेमाल किया गया था, साथ ही, प्लेसहोल्डर बंद हैPositionalDataSourceलोड हो रहा है) b/77237534
रूम
गड़बड़ियां ठीक की गईं
रूम के Rx
SingleऔरMaybeको लागू करने की प्रोसेस में हुई गंभीर गड़बड़ी को ठीक कर दिया गया है, जहां यह क्वेरी को समय से पहले रीसाइकल कर देगा. इससे एक से ज़्यादा क्वेरी जोड़ने पर समस्याएं आ सकती हैं दिए गएSingleयाMaybeइंस्टेंस का ऑब्ज़र्वर. b/76031240अगर डेटाबेस को कॉल किया जाए, तो RoomDatabase.clearAllTables
VACUUMन हो लेन-देन के दौरान होता है. b/77235565
21 मार्च, 2018
कमरा 1.1.0-beta1, पेजिंग 1.0.0-alpha7, और लाइफ़साइकल 1.1.1 की बुकिंग रद्द कर दी गई है.
रूम
एपीआई में किए गए बदलाव
- एपीआई की समीक्षा के आधार पर,
@RawQueryअब क्वेरी पैरामीटर के तौर परStringको पास करना स्वीकार नहीं करता. आपको SupportSQLiteQuery का इस्तेमाल करना होगा. (आर्ग्युमेंट के साथ काम करने वाली सुविधा के साथ SupportSQLiteQuery का इंस्टेंस आसानी से बनाने के लिए, SimpleSQLiteQuery देखें). - RoomDatabase.Builder का फ़ॉलबैकToDestructiveMigrationFrom तरीका, अब
vararg Integerके बजायvararg intको स्वीकार करता है.
गड़बड़ियां ठीक की गईं
RoomDatabase.clearAllTables अब ऑपरेटिंग सिस्टम में वापस जगह पाने की कोशिश करता है. इसके लिए, यह WAL चेकपॉइंट सेट करके और डेटाबेस को
VACUUMसेट करता है.@RawQueryअबobservedEntitiesप्रॉपर्टी के लिए किसी भी पोजो को स्वीकार करता है. हालांकि, इसके लिए ज़रूरी है कि पोजो अपनेEmbeddedफ़ील्ड याRelationसे एक या एक से ज़्यादा इकाइयों का रेफ़रंस देता है. बी/74041772पेजिंग: रूम का DataSource लागू करने पर अब मल्टी-टेबल डिपेंडेंसी (जैसे कि रिलेशन और जॉइन) को सही तरीके से हैंडल किया जाता है. पहले, ये कोड नए नतीजों को ट्रिगर नहीं कर पाते थे या उन्हें इकट्ठा नहीं किया जा सकता था. b/74128314
लाइफ़साइकल
सिर्फ़ एक छोटा बदलाव: android.arch.core.util.Function को arch:runtime से arch:common में ले जाया गया. इससे इसे रनटाइम डिपेंडेंसी के बिना इस्तेमाल किया जा सकता है, उदाहरण के लिए नीचे paging:common में.
lifecycle:common, lifecycle:runtime पर निर्भर करता है. इसलिए, इस बदलाव का lifecycle:runtime पर कोई असर नहीं पड़ेगा. यह सिर्फ़ ऐसे मॉड्यूल पर असर डालेगा जो सीधे तौर पर lifecycle:common पर निर्भर करते हैं, जैसा कि पेजिंग करता है.
पृष्ठांकन
पेजिंग 1.0.0-alpha7 को लाइफ़साइकल 1.1.1 के साथ रिलीज़ किया गया. पेजिंग alpha7, ऊपर बताई गई Function क्लास के स्थानांतरण पर निर्भर करता है, इसलिए आपको अपनी lifecycle:runtime डिपेंडेंसी को android.arch.lifecycle:runtime:1.1.1 पर अपडेट करना होगा.
पेजिंग alpha7 को पेजिंग हिट बीटा से पहले अंतिम रिलीज़ होने की योजना है.
एपीआई में किए गए बदलाव
DataSource.LoadParamsऑब्जेक्ट में अब एक सार्वजनिक कंस्ट्रक्टर है औरDataSource.LoadCallbackऑब्जेक्ट अब ऐब्स्ट्रैक्ट हैं. इससे,DataSourceको रैप करने की सुविधा चालू हो जाती है या मॉक कॉलबैक की मदद से,DataSourceको सीधे तौर पर टेस्ट किया जा सकता है. b/72600421- DataSource और DataSource.Function के लिए मैपर
map(Function<IN,OUT>)की मदद से,DataSourceके लोड किए गए नतीजों को बदला जा सकता है, उन्हें रैप किया जा सकता है या उनमें सजावट की जा सकती है.mapByPage(<List<IN>,List<OUT>>)बैच प्रोसेसिंग के लिए इसे चालू करता है (उदाहरण के लिए, अगर एसक्यूएल से लोड किए गए आइटम के लिए किसी अलग डेटाबेस की अतिरिक्त क्वेरी करने की ज़रूरत है, तो उसे बैच के तौर पर किया जा सकता है.)
PagedList#getDataSource()को सुविधा के तरीके के तौर पर जोड़ा गया है b/72611341- एपीआई से सभी ऐसी क्लास हटा दी गई हैं जो अब काम नहीं करतीं. इनमें
recyclerview.extensionsपैकेज औरLivePagedListProviderके बचे हुए हिस्से भी शामिल हैं. - मैप की सुविधाओं को चालू करने के लिए,
DataSource.Factoryको इंटरफ़ेस से ऐब्स्ट्रैक्ट क्लास में बदला जाता है.
गड़बड़ियां ठीक की गईं
- बदले गए बिल्डर को फ़ाइनल करना है. b/70848565
- रूम
DataSourceको लागू करने की सुविधा को, अब मल्टी-टेबल क्वेरी को हैंडल करने के लिए ठीक कर दिया गया है - यह समस्या रूम 1.1.0-beta1 में मौजूद है, ऊपर दिया गया है. - उस गड़बड़ी को ठीक किया गया है जिसमें प्लेसहोल्डर के चालू होने पर,
PositionalDataSourceके लिएBoundaryCallback.onItemAtEndLoadedशुरू नहीं होगा और कुल साइज़, पेज साइज़ का सटीक गुणा होता है.
2 मार्च, 2018
1.1.0-alpha3 कमरे की बुकिंग रद्द हो गई है. इस ऐल्फ़ा रिलीज़ की आखिरी तारीख यह है:
कमरा 1.1.0.
एपीआई में किए गए बदलाव
अमान्य सिस्टम ट्रैकर का
addObserverऔरremoveObserverतरीके अब सिंक्रोनस हैं और उन्हें बिना यूज़र इंटरफ़ेस वाले थ्रेड पर कॉल किया जाना चाहिए. यह टेबल देखते समय, रेस की कुछ स्थितियों को रोकता है.RoomDatabase पर,
clearAllTables()का नया तरीका मौजूद है क्लास के सभी कॉन्टेंट को हटा देगा. b/63807999SupportSQLiteQueryमें अब एकgetArgCount()तरीका उपलब्ध है, जिससे नंबर मिलता है पैरामीटर का इस्तेमाल किया जा सकता है. b/67038952
गड़बड़ियां ठीक की गईं
@RawQueryअब पेजिंग क्वेरी के लिए ठीक से काम करता है. b/72600425रूम के नाम अब सही तरीके से
Daoक्लास जनरेट किए गए हैं, ताकि नाम एक-दूसरे से मैच न होने पर गड़बड़ी से बचा जा सके दो या उससे ज़्यादाDaoइंटरफ़ेस, एक ही पैकेज में इनर क्लास हैं और उनमें वही नाम. b/73536380Pojoमें जेनेरिक फ़ील्ड टाइप को एक्सटेंशन के सदस्य के तौर पर सही तरीके से पार्स किया गया है क्लास. b/73534868Daoइंटरफ़ेस में मौजूद क्वेरी पैरामीटर, जो डिपेंडेंसी से इनहेरिट किए गए हैं आर्टफ़ैक्ट को अब सही तरीके से पार्स किया गया है. b/68118746@Relationके लिए जनरेट की गई क्वेरी, अब फ़ील्ड के नाम को सही तरीके से छोड़ देती हैं. b/70925483
27 फ़रवरी, 2018
पेजिंग 1.0.0-alpha6 को सपोर्ट लाइब्रेरी की रिलीज़ 27.1.0 के साथ रिलीज़ किया गया.
ListAdapter और उससे जुड़ी कुछ क्लास को पेजिंग लाइब्रेरी से सीधे Recyclerview में ट्रांसफ़र कर दिया गया है. साथ ही, कुछ नामों के साथ-साथ कुछ नाम भी बदले गए हैं, ताकि कुछ खास क्लास के फ़ंक्शन को बेहतर तरीके से समझने में मदद मिल सके. पेजिंग के इस ऐल्फ़ा रिलीज़ में, एपीआई उल्लंघन से जुड़े अहम बदलाव होने की आखिरी संभावना है.
एपीआई में किए गए बदलाव
- क्लास को recyclerview-v7 में ले जाया गया:
ListAdapter
- क्लास के नाम बदले गए और उन्हें recyclerview-v7 पर ले जाया गया:
ListAdapterHelper->AsyncListDifferListAdapterConfig->AsyncDifferConfigDiffCallback->DiffUtil.ItemCallback
- पेजिंग-रनटाइम के अंदर क्लास का नाम बदला गया:
PagedListAdapterHelper->AsyncPagedListDiffer
ट्रांसफ़र की गई क्लास, RecyclerView के साथ काम की थीं. यह पेजिंग लाइब्रेरी से अलग थी. इसका मतलब है कि पेजिंग ऐल्फ़ा रिलीज़ के बिना भी इनका इस्तेमाल किया जा सकता है. हालांकि, इसका मतलब यह भी है कि पेजिंग का इस्तेमाल करने वाले ऐप्लिकेशन को एक ही समय में, ऐल्फ़ा 6 और सपोर्ट लाइब्रेरी 27.1.0 में अपग्रेड करना होगा.
** पेजिंग Alpha6 के लिए माइग्रेशन गाइड: **
- पेजिंग और रीसाइकलरव्यू डिपेंडेंसी को
android.arch.paging:runtime:1.0.0-alpha6औरcom.android.support:recyclerview-v7:27.1.0पर अपडेट करें- ये सारे काम एक साथ किए जाने चाहिए, क्योंकि ListAdapter की सुविधा को पेजिंग से RecyclerView पर ले जाया गया हो
ListAdapterHelperके सभी रेफ़रंस कोAsyncListDifferमें अपडेट करेंgetCurrentList().getItem(index)औरgetCurrentList().size()को कॉल करने के पैटर्न के हिसाब से,getItem(index)/getItemCount()को हटा दिया गया है. ये ज़्यादा अश्लील हैं.
ListAdapterConfigके सभी रेफ़रंस कोAsyncDifferConfigमें अपडेट करेंDiffCallbackके सभी रेफ़रंस कोDiffUtil.IttemCallbackमें अपडेट करेंPagedListAdapterHelperके सभी रेफ़रंस कोAsyncPagedListDifferमें अपडेट करेंsetList()के रेफ़रंस कोsubmitList()में अपडेट करें- सूची में अंतर की एक साथ काम नहीं करने वाली प्रोसेस के बारे में बताने के लिए नाम बदला गया
गड़बड़ियां ठीक की गईं
- प्लेसहोल्डर होने पर, शुरुआती लोड में गलत शुरुआती पोज़िशन पास होने की समस्या ठीक की गई बंद हैं. b/73513780
15 फ़रवरी, 2018
1.1.0-alpha2 कमरे की बुकिंग रद्द हो गई है.
नई सुविधाएं
रूम में अब पहले से लिखें मोड में डेटाबेस खोला जा सकता है. इस मोड में लिखने पर, आपकी पढ़ी गई क्वेरी ब्लॉक नहीं होंगी. हालांकि, यह ज़्यादा मेमोरी का इस्तेमाल करता है (कई कनेक्शन की वजह से), यह मोड आम तौर पर ऐसा होता है और तेज़ी से. डिफ़ॉल्ट रूप से, अगर डिवाइस
API 16या उससे बड़ी स्क्रीन पर है, तो रूम WAL का इस्तेमाल करेगा कम मेमोरी डिवाइस नहीं है. इस व्यवहार को कंट्रोल करने के लिए,RoomDatabase.BuilderपरsetJournalMode()तरीका. बी/67757002Guava सहायता: रूम अब Guava पर काम करता है
DAOक्वेरी मेंOptional<T>याListenableFuture<T>.ListenableFuture<T>का इस्तेमाल करने के लिए, आपको रूम सेguavaआर्टफ़ैक्ट इंपोर्ट करना होगा (android.arch.persistence.room:guava:1.1.0-alpha2).अब कमरे में
DAOक्वेरी का जवाब देने के लिए,java.util.Optional<T>की सुविधा उपलब्ध है.डिफ़ॉल्ट रूप से इस्तेमाल किए जाने वाले इंटरफ़ेस के तरीके अब इसमें काम करते हैं
DAOक्लास में@Transactionतरीके. यहJava 8और, दोनों के लिए काम करता हैKotlin. b/72416735
गड़बड़ियां ठीक की गईं
@Relationवाले कंस्ट्रक्टर का इस्तेमाल करने पर, कंपाइलेशन गड़बड़ी नहीं होगी. ऐसा तब होगा, जब दूसरा कंस्ट्रक्टर है, जिसका इस्तेमाल किया जा सकता है. b/72884434@Queryतरीकों में, टेबल के नामों को'से एस्केप किया गया है. अब ये सही तरीके से एस्केप किए गए हैं के लिए अमान्य है. b/72366965रूम अब क्लास के स्ट्रक्चर को पढ़ने के लिए, Kotlin
@Metadataएनोटेशन का इस्तेमाल करता है को लागू करते हैं. इसका मतलब है कि भले ही पोजो, पर निर्भर नहीं है, तो इसके कंस्ट्रक्टर पैरामीटर के नाम ठीक से पढ़े जा सकते हैं. b/67181813डाउनग्रेड माइग्रेशन पाथ ढूंढने से जुड़ी समस्या ठीक की गई. b/72153525
किसी कॉलम से माइग्रेट करते समय, नॉन डिफ़ॉल्ट कॉलम टाइप को सही तरीके से हैंडल किया जाता है रूम से मौजूदा डेटाबेस को हटा दिया जाता है. b/71953987
अब कमरा, Kotlin क्लास में मौजूद
boolean?फ़ील्ड को सही तरीके से हैंडल करता है. b/72786402
22 जनवरी, 2018
लाइफ़साइकल 1.1.0, रूम 1.1.0-alpha1, और पेजिंग 1.0.0-alpha5 रिलीज़ हो गई हैं.
लाइफ़साइकल 1.1.0
पैकेजिंग में बदलाव
अब नई, बहुत कम डिपेंडेंसी उपलब्ध हैं:
android.arch.lifecycle:livedata:1.1.0android.arch.lifecycle:viewmodel:1.1.0
एपीआई में किए गए बदलाव
- हटाए गए
LifecycleActivityऔरLifecycleFragmentको अब हटा दिया गया है - कृपया इसका इस्तेमाल करेंFragmentActivity,AppCompatActivityयाFragmentका समर्थन करें. ViewModelProvidersऔरViewModelStoresमें@NonNullएनोटेशन जोड़े गएViewModelProvidersकंस्ट्रक्टर अब काम नहीं करता है - कृपया सीधे इसके स्टैटिक तरीकों का इस्तेमाल करेंViewModelProviders.DefaultFactoryके इस्तेमाल पर रोक लगा दी गई है - कृपयाViewModelProvider.AndroidViewModelFactoryका इस्तेमाल करें- वापस पाने के लिए स्टैटिक
ViewModelProvider.AndroidViewModelFactory.getInstance(Application)तरीका जोड़ा गया एक स्टैटिकFactory, जोViewModelऔरAndroidViewModelइंस्टेंस बनाने के लिए सही है.
कमरा 1.1.0-alpha1
नई सुविधाएं
RawQuery: इस नए एपीआई की मदद से,@Daoमेथड को क्वेरी पैरामीटर के तौर पर एसक्यूएल मिल सकता है b/62103290, b/71458963fallBackToDestructiveMigrationsFrom:RoomDatabase.Builderमें इस नए एपीआई का इस्तेमाल करके इस पर ज़्यादा बारीकी से कंट्रोल किया जाता है कि स्कीमा वर्शन की मदद से, नुकसान पहुंचाने वाला माइग्रेशन शुरू किया जाता है अनुमति है (FlbackToDestructiveMigration की तुलना में) b/64989640- रूम अब सिर्फ़ नए पेजिंग एपीआई (ऐल्फ़ा-4+) के साथ काम करता है जो अब काम नहीं करता है
LivePagedListProvider. नए रूम ऐल्फ़ा का इस्तेमाल करने के लिए, आपको पेजिंग का इस्तेमाल करना होगाalpha-4या इसके बाद के वर्शन पर स्विच करें. अगर आपने अभी तकLivePagedListProviderसेLivePagedListBuilderपर स्विच नहीं किया है, तो अब कर लें.
गड़बड़ियां ठीक की गईं
- Kotlin Kapt टाइप के लिए बेहतर सपोर्ट. b/69164099
- फ़ील्ड के क्रम से अब स्कीमा अमान्य नहीं होता. b/64290754
पेजिंग 1.0.0-alpha5
गड़बड़ियां ठीक की गईं
- प्लेसहोल्डर के बंद होने पर, पेज के लोड होने की समस्या ठीक करें b/70573345
- legalArgument Settings गड़बड़ी को ट्रैक करने के लिए अतिरिक्त लॉगिंग b/70360195 (और अनुमान के हिसाब से रूम-साइड समाधान)
- Javadoc के सैंपल कोड से जुड़ी समस्याएं ठीक करना b/70411933, b/71467637
11 दिसंबर, 2017
पेजिंग alpha4-1 रिलीज़ की गई. पेजिंग ऐल्फ़ा 4 के लिए, यह एक छोटी गड़बड़ी ठीक की गई है.
गड़बड़ियां ठीक की गईं
- अमान्य डेटा सोर्स के लिए, कॉलबैक पैरामीटर की जांच न करें. b/70353706, b/70360195
7 दिसंबर, 2017
पेजिंग alpha4 रिलीज़ की गई. इसमें अहम बदलावों के साथ कुछ बदलाव किए गए हैं. इसमें ज़्यादातर बदलाव किए गए हैं
टारगेटिंग नेटवर्क, और नेटवर्क + डेटाबेस के इस्तेमाल के उदाहरण.
एपीआई में किए गए बदलाव
DataSourceअब एक एसिंक्रोनस एपीआई है. सीधे नेटवर्क से पेजिंग करना आसान बनाने के लिए:- शुरुआती साइज़ और डेटा के लिए सिंगल एंट्री पॉइंट
- कॉलबैक करके और बाद में डिस्पैच करके, नेटवर्क को फिर से कोशिश करने की सुविधा मिलती है
- Threadsafe कॉलबैक सिंगल नेटवर्क बनाने के लिए एसिंक्रोनस लोडिंग की अनुमति देते हैं
यूज़र इंटरफ़ेस (यूआई) थ्रेड पर
PagedListका बैक अप लिया गया. - शुरुआती लोड पैरामीटर के आस-पास होने वाली गड़बड़ी के बारे में साफ़ तौर पर जानकारी
TiledDataSourceका नाम बदलकरPositionalDataSourceकर दिया गया है, ताकि यह दिखाया जा सके कि रैंक के हिसाब से इंडेक्स करना. साथ ही, यह भी कि प्लेसहोल्डर बंद किया गया.PageKeyedDataSourceको इसमें एम्बेड किए गए अगले/पिछले टोकन के साथ काम करने के लिए जोड़ा गया है नेटवर्क पेज लोड होता है.KeyedDataSourceका नाम बदलकरItemKeyedDataSourceकिया गया, ताकि अंतर साफ़ तौर पर बताया गया है.LivePagedListBuilderऔरDataSource.Factoryबदल दिए गएLivePagedListProvider. बिल्डर, Google Ads में उतनी ही सुविधाएं देता है और आसान डिफ़ॉल्ट सेटिंग. फ़ैक्ट्रीDataSourceजनरेशन की अनुमति देती हैLiveDataसे अलग रहने के लिए कोड का इस्तेमाल करें.डेटाबेस और नेटवर्क के इस्तेमाल के उदाहरण के लिए,
PagedList.BoundaryCallbackको जोड़ा गया.अब
PagedList.Builderकंस्ट्रक्टर,DataSource+PagedList.Configलेता हैLivePagedListBuilderसे ज़्यादा मिलता-जुलता है और डायमंड ऑपरेटर को Java की भाषा या Kotlin में अनुमानित टाइप.PagedList.getConfig()को जोड़ा गया और अबPagedList.Configकी सदस्यता सार्वजनिक हो गई है प्रॉपर्टी.KeyedDataSource.loadBefore()के लिए अब नतीजे वापस आने की उम्मीद नहीं है.PagedListAdapter.onCurrentListChanged()को ये अपडेट सुनने के लिए जोड़ा गया PagedList दिखाया जा रहा है.
गड़बड़ियां ठीक की गईं
- PagedListAdapter(हेल्पर) b/67883658 में, IndexOutOfBoundsअपवाद ठीक नहीं हुआ है
1.0.0 - 6 नवंबर, 2017
पेजिंग को छोड़कर सभी मुख्य कॉम्पोनेंट अब 1.0.0 हैं. यह पहले जैसा ही है
reactivestreams लाइब्रेरी में एक बदलाव किए जाने को छोड़कर, rc1 के तौर पर रिलीज़ करें.
गड़बड़ियां ठीक की गईं
LiveDataReactiveStreamsअब सही तरीके से लागू करता है Reactive Streams की खास बातें. b/67999342
रिलीज़ कैंडिडेट - 18 अक्टूबर, 2017
पेजिंग को छोड़कर सभी मुख्य आर्टफ़ैक्ट (पेजिंग को छोड़कर) अब 1.0.0-rc1 हैं.
हमारे पास कोई भी ज़्यादा ज्ञात समस्याएं या नई सुविधाएं नहीं हैं
1.0.0 रिलीज़. 1.0.0-rc1 का इस्तेमाल करने के लिए, कृपया अपने प्रोजेक्ट अपग्रेड करें और हमारी मदद करें
ताकि हम एक शानदार पत्थर 1.0.0 भेज सकें.
व्यवहार में बदलाव
- इस रिलीज़ के साथ,
Lifecycle.Event#ON_STOPको अब तब भेजा जाएगा, जबonSaveInstanceStateको कॉल किया गया है (पहले इसेCREATEDके तौर पर मार्क किया गया थाON_STOPडिस्पैच किए बिना). इस बारे में ज़्यादा जानने के लिए, यहां जाएं: लाइफ़साइकल के दस्तावेज़.
गड़बड़ियां ठीक की गईं
चैट रूम:
- कमरा अब सबसे नए जीरियल आर्टफ़ैक्ट पर निर्भर करता है, जो
OutOfMemoryको ठीक करता है समस्याओं को हल करने में मदद मिलती है. b/62473121 Queryतरीकों के बारे में बताने के लिए, अब@Transactionका इस्तेमाल किया जा सकता है. ज़्यादा जानकारी के लिए,@Transactionपर दस्तावेज़ का रेफ़रंस देखें. b/65112315- रूम की
StringUtilक्लास को सार्वजनिक तौर से हटा दिया गया है एपीआई (इसे सार्वजनिक एपीआई के तौर पर कभी डिज़ाइन नहीं किया गया था).
- कमरा अब सबसे नए जीरियल आर्टफ़ैक्ट पर निर्भर करता है, जो
लाइफ़साइकल:
LiveDataतब ठीक से काम करता है, जब गतिविधि, एपीआई पर कुछ हद तक कवर होती है < 24. b/65665621पैरंट क्लास में
OnLifecycleEventतरीकों को अब सही तरीके से कॉल किया जाता है या अगर मुमकिन न हो, तो कंपाइलेशन के दौरान चेतावनी को प्रिंट किया जाएगा. b/63474615लाइफ़साइकल अब
WeakReferenceको वापस अपनी लाइफ़साइकल ओनर, ताकि अगर लाइफ़साइकल को ज़्यादा समय तक याद रखा जाता है, तो लाइफ़साइकल के मालिक सामान्य से ज़्यादा है (यह सिर्फ़ एक सावधानी बरतना है, तो आपको सावधानी बरतनी चाहिए कि आपLifecycleलीक किया गया हो).
9 अक्टूबर, 2017
पेजिंग alpha-3 रिलीज़ की गई; जो इसे beta 2 के साथ काम करता है
लाइफ़साइकल और रूम की रिलीज़ के बारे में ज़्यादा जानकारी.
गड़बड़ियां ठीक की गईं
- पेजिंग से जुड़ा बेहतर दस्तावेज़.
5 अक्टूबर, 2017
पेजिंग को छोड़कर सभी मुख्य आर्टफ़ैक्ट (पेजिंग को छोड़कर) अब beta 2 हैं.
इस रिलीज़ में पेजिंग का कोई नया वर्शन उपलब्ध नहीं है.
गड़बड़ियां ठीक की गईं
लाइफ़साइकल:
LiveDataReactiveStreamsअब सोर्स की सदस्यता छोड़ देता है प्रकाशक को तब चालू करें, जबLiveDataचालू न हो. b/62609183- जब पैरंट क्लास किसी अन्य मॉड्यूल से होती है, तो लाइफ़साइकल इवेंट को पैरंट क्लास में सही तरीके से लागू किया जाता है. b/63474615
- LiveData, ऑब्ज़र्वर को सही तरीके से हैंडल करता है, जब वे सदस्यता रद्द करते हैं सदस्यता लेना होगा. b/66337741
Java 8 लैंग्वेज आर्टफ़ैक्ट का
FullLifecycleObserver, अब डिपेंडेंसी ट्री में उपलब्ध है. b/66525578ProGuard के लिए, कृपया अपनी ProGuard फ़ाइल में ये लाइनें जोड़ें. (1.0.0 शिप होने पर, इसकी ज़रूरत नहीं होगी)
-keep class * implements android.arch.lifecycle.GeneratedAdapter {<init>(...);}
चैट रूम:
- रूम अब कंपाइल के समय पर गड़बड़ी को प्रिंट करता है, जब पोजो को
@Queryतरीके में ऐसा@NonNullफ़ील्ड है जो इनमें से किसी से भी मेल नहीं खाता कॉलम. अगर फ़ील्ड@Nullableहै, तो सिर्फ़ कमरा बुक किया जा सकता है चेतावनी को प्रिंट करता है. b/67115337 - रूम, अब ओएस के नए वर्शन के इंडेक्स की पुष्टि करता है. बी/63132683
- अगर कई पोजो में मिलते-जुलते कंस्ट्रक्टर हैं. b/67353427
- एकल कॉलम की प्राथमिक कुंजियां
Nullableहो सकती हैं, अगर यहIntegerयाLong. बी/67086876 - इनवैलिडेशन ट्रैकर, टेस्ट मोड में री-एंट्री को सही तरीके से हैंडल करता है. b/65471397
- रूम अब कॉलम और टेबल में अमान्य वर्णों की जांच करता है
कंपाइल करते समय नाम (अमान्य वर्ण:
`,"). b/64749111
- रूम अब कंपाइल के समय पर गड़बड़ी को प्रिंट करता है, जब पोजो को
21 सितंबर, 2017
इस रिलीज़ के साथ, सभी आर्किटेक्चर कॉम्पोनेंट मॉड्यूल कम से कम beta 1 तक पहुंच गए हैं
(नई पेजिंग लाइब्रेरी, जो कि alpha 2 है) को छोड़कर.
हम एपीआई में और बदलाव करने की योजना नहीं बना रहे हैं. ऐसे बदलाव हो सकते हैं जो पहले से न किए गए हों, लेकिन
1.0.0 से पहले, किसी एपीआई को बार-बार बदलने की प्रोसेस बहुत ज़्यादा होती है और इसके होने की संभावना बहुत कम होती है.
- लाइफ़साइकल गतिविधि और
1.0.0के स्थिर होने से पहले, Lifecycleफ़्रैगमेंट को हटा दिया जाएगा. वे सहायता लाइब्रेरी26.1.0या इसके बाद के वर्शन का इस्तेमाल करते समय, की ज़रूरत नहीं होती है.
ऐल्फ़ा फ़ेज़ के उलट, बीटा फ़ेज़ की अवधि बहुत कम होती है.
वर्शन में बदलाव
- लाइफ़साइकल एक्सटेंशन और रूम का नाम अब
beta 1है - पेजिंग अब
alpha 2है - लाइफ़साइकल (रनटाइम, सामान्य) और आर्क कोर (सामान्य) में कोई बदलाव नहीं हुआ है. ये दोनों आर्टफ़ैक्ट
हैं. ये वर्शन 13 सितंबर से
1.0.0हैं.
नए आर्टफ़ैक्ट
लाइफ़साइकल में अब एक नया आर्टफ़ैक्ट मौजूद है, जिसे
common-java8कहते हैं. इस आर्टफ़ैक्ट में एक नया इंटरफ़ेस जिसे Default LifecycleObserver नाम से शुरू करता है; कौनसा यह सभी लाइफ़साइकल तरीकों के लिए, डिफ़ॉल्ट तौर पर लागू होता है. अगर Java 8 लैंग्वेज का इस्तेमाल किया जा रहा है, आपको टिप्पणियों के बजाय इस आर्टफ़ैक्ट को प्राथमिकता देनी चाहिए.beta1में एक गड़बड़ी की वजह से, आपको इस पर साफ़ तौर पर डिपेंडेंसी जोड़नी होगी नएcommon-java8आर्टफ़ैक्ट का इस्तेमाल करने के लिए,android.arch.lifecycle:common:1.0.1मॉड्यूल. यह समस्याbeta2में ठीक कर दी जाएगी.
पैकेजिंग में बदलाव
android.arch.persistence.room.dbकोandroid.arch.persistence.dbमें ले जाया गयाandroid.arch.persistence.room.db-implको ले जाया गया है और उसका नाम बदलकरandroid.arch.persistence.db-frameworkकर दिया गया है
ये दोनों आर्टफ़ैक्ट पहले से ही रूम पर निर्भर हैं. इसलिए, अगर सीधे तौर पर उनका इस्तेमाल नहीं किया जा रहा है, तो आपको अपनी बिल्ड फ़ाइलों में कुछ भी बदलने की ज़रूरत नहीं है.
एपीआई में किए गए बदलाव
चैट रूम:
- @ColumnInfo एनोटेशन अब कॉलम पर कोलेशन सेट करने की सुविधा देता है. बी/62007004
transientफ़ील्ड को अब डिफ़ॉल्ट रूप से अनदेखा किया जाता है. हालांकि, ऐसा तब नहीं होगा, जब इन फ़ील्ड के बारे में@ColumnInfoके साथ एनोटेट किया गया हो.@Embeddedया@Relation. b/62600692- प्राथमिक कुंजियों के साथ
@NonNullके बारे में तब तक जानकारी होनी चाहिए, जब तक वे अपने-आप जनरेट न हों. b/64292391- इस बदलाव के लिए, स्कीमा माइग्रेशन की ज़रूरत हो सकती है. आपको हुई परेशानी के लिए, हम माफ़ी चाहते हैं.
- सुविधा का एक नया एनोटेशन (@Transaction) जोड़ा गया, जो
DAOतरीके को ओवरराइड करता है और उसे ट्रांज़ैक्शन में चलाता है.
SQLite डेटाबेस के साथ काम करता है:
- डेटाबेस के कॉन्फ़िगरेशन में एपीआई के बदलाव. b/65349673 b/65499876
पेजिंग:
- पेजिंग के लिए बेहतर दस्तावेज़, जिसमें ज़्यादा उदाहरण और थ्रेड की व्याख्याएं भी शामिल हैं.
गड़बड़ियां ठीक की गईं
- कमरा:
@Queryतरीकों में, Kotlin की मल्टी-लाइन स्ट्रिंग सही तरीके से हैंडल की जाती हैं. b/65809374
- पेजिंग:
- पेजिंग आर्टफ़ैक्ट अब जूनिट पर निर्भर नहीं करता है. b/65690261
1.0.0 ऐल्फ़ा 9-1 - 13 सितंबर, 2017
यह एक बड़ी रिलीज़ है, जिसमें कोर लाइफ़साइकल आर्टफ़ैक्ट (रनटाइम, सामान्य) और आर्क कोर (सामान्य)
स्टेबल वर्शन 1.0.0 तक पहुंचें.
इस बदलाव के साथ ही, सहायता लाइब्रेरी 26.1.0 अब इन लाइब्रेरी पर निर्भर करती है. AppCompatActivity और सहायता फ़्रैगमेंट, दोनों अब लाइफ़साइकलओनर इंटरफ़ेस लागू करें.
नए इंटिग्रेशन का फ़ायदा पाने के लिए, यह रिलीज़, सपोर्ट लाइब्रेरी 26.1.0 पर भी निर्भर करेगी.
नई लाइब्रेरी: पेजिंग
इस रिलीज़ में पेजिंग नाम की एक नई लाइब्रेरी भी शामिल है, जिसकी मदद से
डेटा सेट को ज़रूरत के हिसाब से कई हिस्सों में RecyclerView में बदलें. पेजिंग को alpha1 के तौर पर रिलीज़ किया गया है
और उसका अपना रिलीज़ साइकल होगा.
एपीआई में किए गए बदलाव
- इन क्लास के इस्तेमाल पर रोक लगा दी गई है और इन्हें आने वाले समय में रिलीज़ किया जाएगा:
गड़बड़ियां ठीक की गईं
अगर ऐप्लिकेशन के क्लासपाथ में कोई जानकारी मौजूद है, तो जनरेट की गई क्लास के साथ अब
@Generatedकी जानकारी जोड़ी जाती है. b/35754819MediatorLiveData की ऑब्ज़र्वर तुलना से जुड़ी गड़बड़ी को ठीक किया गया. b/64413274
SQLite
WITHक्वेरी अब [LiveData] के साथ काम करती हैं. [ref-LiveData] b/62510164गड़बड़ी को ठीक किया गया है जहां एक से ज़्यादा टेबल होने पर अमान्यationTracker सही सूची नहीं भेजेगा देखा गया है. बी/65099281
वह गड़बड़ी ठीक की गई है जहां Room के ज़रिए Windows पर अलग-अलग फ़ाइलें जनरेट की जाएंगी. b/64470691
रूट पैकेज में LifecycleObserver को अब इस्तेमाल किया जा सकता है. b/62310817
1.0.0 ऐल्फ़ा 9 - 16 अगस्त, 2017
गड़बड़ियां ठीक की गईं
- LiveData में एक गड़बड़ी को ठीक किया गया.
onChangedतरीके से, पहले यूआरएल को हटाने पर, दूसरे ऑब्ज़र्वर को अनदेखा कर दिया गया था. b/64285805
1.0.0 ऐल्फ़ा 8 - 1 अगस्त, 2017
व्यवहार में बदलाव
- प्रिमिटिव टाइप या कॉलम के लिए,
NOT NULLकंस्ट्रेंट जोड़ा गया है NonNull के साथ एनोटेट किया गया है. इससे आपकी साइट की बनावट टेबल का उपयोग किया जा सकता है, इसलिए यदि आप पहले से आर्किटेक्चर कॉम्पोनेंट अल्फ़ा 7 या पहले के वर्शन का उपयोग कर रहे हैं, अगर आपको डेटा सेव रखना है या बिल्डर मेंfallbackToDestructiveMigration()तरीका जोड़ा गया है. b/62007004
एपीआई में किए गए बदलाव
- SupportSQLiteProgram अब AutoCloseable की सुविधा भी है. b/63131997
1.0.0 ऐल्फ़ा 7 - 26 जुलाई, 2017
गड़बड़ियां ठीक की गईं
लाइफ़साइकल रजिस्टर
removeObserverतरीके में हुई गंभीर गड़बड़ी को ठीक कर दिया गया है. इसकी वजह से लाइफ़साइकल ऑब्ज़र्वर का डेटा टूट गया.कस्टम डेटाबेस b/63162311 के लिए अमान्य गड़बड़ी का ट्रैकर
1.0.0 ऐल्फ़ा 6 - 25 जुलाई, 2017
व्यवहार में बदलाव
लाइफ़साइकल ऑब्ज़र्वर कॉल का क्रम बदल दिया गया है. पहले ऑब्ज़र्वर को हमेशा उनके जोड़ने के क्रम में कॉल किया जाता था: अगर
observer1कोobserver2से पहले जोड़ा जाता है, तो उसेON_CREATEऔर अन्य सभी इवेंट कोobserver2से पहले मिलेगा. विनाश की घटनाओं के लिए अब यह सही नहीं है, उनके लिए ऑब्ज़र्वर को योग के विपरीत क्रम में कॉल किया जाता है. इसलिए, मौजूदा व्यवहार ऐसा है: अगरobserver1कोobserver2से पहले जोड़ा जाता है, तोON_CREATEपहलेobserver1को और फिरobserver2को (ON_STARTऔरON_RESUMEके लिए एक ही) भेजा जाता है. हालांकि,ON_PAUSEइवेंट पहलेobserver2को और उसके बाद सिर्फ़observer1को भेजा जाता है (ON_STOPऔरON_DESTROYके लिए एक जैसा).अगर माइग्रेशन मौजूद नहीं है, तो चैट रूम में अपवाद दिखता है. पहले रूम, डेटाबेस को ही मिटाता था, लेकिन अब यह क्रैश हो जाता है. डेवलपर, बिल्डर एपीआई को कॉल करके, डेटा हटाने के तरीके के लिए ऑप्ट-इन कर सकते हैं. b/63872392
एपीआई में किए गए बदलाव
fallbackToDestructiveMigration()तरीके कोRoomDatabase.Builderमें जोड़ा गया: माइग्रेशन न होने पर डेटाबेस को मिटाएं. b/63872392आर्किटेक्चर के कॉम्पोनेंट अब सहायता लाइब्रेरी 26.0.0 पर निर्भर करते हैं
गड़बड़ियां ठीक की गईं
@Embedded में नेस्ट किए गए @Relation को ठीक किया गया हैंडलिंग. b/63736065
अपने-आप बढ़ने वाली प्राथमिक कुंजी वाली टेबल के लिए, टेस्ट माइग्रेशन को ठीक किया गया. b/63393618
अब 'मिटाएं' या 'अपडेट करें' क्वेरी चलाने वाली @क्वेरी को सही तरीके से तर्क मिलते हैं. b/63872538
अब ViewModels को बनाए रखा जाता है, जब मालिक का फ़्रैगमेंट बैकस्टैक में होता है और कॉन्फ़िगरेशन दो बार बदलता है. b/38445801
1.0.0 ऐल्फ़ा 5 - 18 जुलाई, 2017
एपीआई में किए गए बदलाव
RoomDatabase.Builderमें कॉलबैक का नया तरीका जोड़ा गया, ताकि यह देखा जा सके कि डेटाबेस कब बनाया या खोला गया है. b/62699324@Query के लिए अब RxJava
MaybeयाSingleदिखे. b/62231019
रूम में RxJava की सुविधा जोड़ने के लिए, आपको android.arch.persistence.room:rxjava2 आर्टफ़ैक्ट का इस्तेमाल करना होगा.
गड़बड़ियां ठीक की गईं
बिना किसी पैरामीटर के
@Deleteक्वेरी को ठीक किया गया. b/63608092गैटर और सेटर के लिए फ़िक्स रूम टाइप की जांच. b/63733651
1.0.0 ऐल्फ़ा 4 - 11 जुलाई, 2017
एपीआई में किए गए बदलाव
RoomDatabase में, सुविधा का नया तरीका (
runInTransaction()) जोड़ा गया.@Insert,@Delete, और@Updateतरीकों में अब अलग-अलग तरह की इकाइयों के पैरामीटर मौजूद हो सकते हैं. b/62682405
गड़बड़ियां ठीक की गईं
@Daoतरीकों मेंbyte[]हैंडलिंग को ठीक किया गया. b/62460045रूम में माइग्रेशन की जांच करने के लिए, अब केस-इनसेंसिटिव तुलना का इस्तेमाल किया जाता है. b/62875382
Lifecycles आर्टफ़ैक्ट के लिए, ProGuard कॉन्फ़िगरेशन को ठीक किया गया. b/62113696
1.0.0 ऐल्फ़ा 3 - 15 जून, 2017
एपीआई में किए गए बदलाव
अब
@OnLifecycleEventमें सिर्फ़ एक इवेंट पैरामीटर इस्तेमाल किया जा सकता है. यह Java 8 समर्थन के लिए तैयारी में एक परिवर्तन है ताकि हम माइग्रेट कर सकें ऐसे इंटरफ़ेस होने चाहिए जो आने वाले समय में डिफ़ॉल्ट तरीकों से जुड़े हों. इस बदलाव के संबंध में, सिर्फ़@OnLifecycleEvent(ON_ANY)व्याख्या करने वाले तरीके से दूसरा पैरामीटर मिल सकता हैEvent(पहला पैरामीटरLifecycleOwnerहै). ज़्यादा जानकारी के लिए, लाइफ़साइकल दस्तावेज़ देखें.LifecycleActivityऔरLifecycleFragmentक्लासandroid.arch.lifecycle:extensionsआर्टफ़ैक्ट में ले जाई जाती है.माइग्रेशनTestHelper को इंस्ट्रुमेंटेशन इंस्टेंस मिलता है
Contextके बजाय टेस्ट ऐसेट से स्कीमा पढ़ें और ऐप्लिकेशन के कॉन्टेक्स्ट में डेटाबेस.@Insert,@Delete, और@Updateएनोटेशन@DAOतरीकों में अब पैरामीटर टाइप के तौर परIterableहो सकता है. b/62259820
गड़बड़ियां ठीक की गईं
लाइफ़साइकल इवेंट वाले ओवरराइड किए गए तरीकों को, अब एक से ज़्यादा बार कॉल नहीं किया जाता.
कई
INपैरामीटर अब सही तरीके से हैंडल किए जाते हैं. b/62608681ऐब्स्ट्रैक्ट डीएओ क्लास में अब कंस्ट्रक्टर हो सकता है, जिसे
@Databaseमिलता है इंस्टेंस. b/38488747DAOके पास अब टाइप पैरामीटर वाला सुपर क्लास/इंटरफ़ेस हो सकता है. b/62103620
1.0.0 ऐल्फ़ा 2 - 2 जून, 2017
एपीआई में किए गए बदलाव
VerifyationTracker कॉलबैक को अब टेबल के बदले गए नामों की सूची मिलती है. (b/38468740)
SupportSQLiteDatabase क्लास का एपीआई सरफ़ेस कम किया गया. (b/38481640)
गड़बड़ियां ठीक की गईं
- लाइफ़साइकल के लिए ProGuard फ़ाइलें. (b/62113696)
- टाइप कन्वर्टर के साथ डेटा की हानि. (b/62100716)
@Insertक्वेरी सेLong[]लौटाने की अनुमति दें.
1.0.0 ऐल्फ़ा 1 - 17 मई, 2017
MinSDK टूल: 14
सामान्य सलाह
हालांकि, हमने लॉन्च करने से पहले काफ़ी टेस्ट किए, लेकिन स्ट्रक्चर कॉम्पोनेंट अभी ऐल्फ़ा में मौजूद हैं. अगर आपको कोई प्रोडक्शन ऐप्लिकेशन बनाना है, तो ध्यान रखें कि 1.0 वर्शन के रिलीज़ होने से पहले, एपीआई बदल जाएगा और हो सकता है कि यह पूरी तरह मज़बूत न हो. अगर आपको लाइब्रेरी में इस्तेमाल होने वाली लाइब्रेरी में समस्याओं को डीबग करने में दिक्कत नहीं है, तो हम आपको पहले साइड प्रोजेक्ट में आर्किटेक्चर कॉम्पोनेंट इस्तेमाल करने का सुझाव देते हैं.
हम यह सुझाव नहीं दे रहे हैं कि सभी उपयोगकर्ता आज ही माइग्रेट करें. हमारे पास आर्किटेक्चर कॉम्पोनेंट की 1.0 रिलीज़ के लिए, माइग्रेशन गाइड तैयार है.
सीमाएं और समस्याएं जिनके बारे में पता है
- सहायता लाइब्रेरी में मौजूद लाइफ़साइकल
FragmentऔरActivityCompatमें अभीLifecycleOwnerइंटरफ़ेस लागू नहीं किया गया है. वे तब होते हैं, जब आर्किटेक्चर कॉम्पोनेंट 1.0.0 वर्शन पर पहुंच जाते हैं.