आर्किटेक्चर कॉम्पोनेंट रिलीज़ नोट संग्रह

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/120104424
  • AppBarConfiguration अब आपको फ़ॉलबैक सेट करने की सुविधा देता है OnNavigateUpListener इंस्टेंस जिसे navController.navigateUp() के लौटने पर कॉल किया जाएगा false. b/79993862 b/120690961

नुकसान पहुंचाने वाले बदलाव

  • argType="reference" के साथ <argument> का इस्तेमाल करने पर नेविगेशन का इस्तेमाल नहीं किया जा सकता रॉ रिसॉर्स आईडी देने के बजाय, रेफ़रंस को पार्स करता है. b/111736515
  • onNavDestinationSelected() अब डिफ़ॉल्ट रूप से, आपके नेविगेशन ग्राफ़ की शुरुआती मंज़िल पर वापस पॉप-अप होता है, इससे वे setup तरीकों से एक जैसे हो जाते हैं. जोड़ें बैक स्टैक को पॉप-अप होने से बचाने के लिए, अपने MenuItem पर menuCategory="secondary". aosp/852869
  • जनरेट की गई Args क्लास के fromBundle() तरीकों के लिए, अब वैल्यू शून्य नहीं होनी चाहिए शून्य वाले Bundle के बजाय Bundle aosp/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/118670572
  • OnDestinationChangedListener अब Bundle आर्ग्युमेंट को भी पास करता है aosp/837142
  • app:clearTask और app:launchDocument एट्रिब्यूट और उनसे जुड़े एट्रिब्यूट तरीके हटा दिए गए हैं. अपने ग्राफ़ के रूट के साथ app:popUpTo का इस्तेमाल करें, ताकि पिछली गतिविधियों से सभी डेस्टिनेशन हटाएं. b/119628354
  • ActivityNavigator.Extras अब Builder पैटर्न का इस्तेमाल करता है और इसकी क्षमता जोड़ता है कोई Intent.FLAG_ACTIVITY_ फ़्लैग सेट करें aosp/828140
  • NavController.onHandleDeepLink का नाम बदलकर handleDeepLink कर दिया गया है aosp/836063
  • ऐसी कई क्लास और तरीके जिनका इस्तेमाल सब-क्लास करने के लिए नहीं किया जाता है, जैसे कि NavOptions, NavInflater, NavDeepLinkBuilder, और AppBarConfiguration, final बना दिए गए हैं aosp/835681
  • NavHostFragment.setGraph() का इस्तेमाल न किया जा सकने वाला तरीका हटा दिया गया है aosp/835684
  • NavigationUI.navigateUp(DrawerLayout, NavController) का अब इस्तेमाल नहीं किया जा सकने वाला तरीका को निकाल दिया गया है. aosp/835684
  • फ़्रैगमेंट बनाने की सुविधा को FragmentNavigator में ले जाया गया. इससे, ये काम करना आसान हो गया है FragmentFactory में फ़्रैगमेंट बनाना. b/119054429
  • NavGraphNavigator का कंस्ट्रक्टर अब Context नहीं लेता है aosp/835340
  • NavigatorProvider अब की जगह एक क्लास है. NavigatorProvider को, इन्होंने लौटाया getNavigatorProvider() ने इसकी सुविधाओं में बदलाव नहीं किया है. aosp/830660
  • NavDestination.navigate() को हटा दिया गया है. Navigator पर navigate() को कॉल करें आज़माएं. aosp/830663
  • Navigator की ज़रूरी रीफ़ैक्टरिंग, 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() के दौरान CANCELLED State के साथ WorkInfo दिखाएगा.
  • ListenableWorker में null Result को पूरा नहीं हुआ के तौर पर मानें. बी/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 में FTS tokenizer अब 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() का इस्तेमाल किया जा सकता है. हमने ऐसा एपीआई प्लैटफ़ॉर्म और तरीकों की संख्या को कम करने के लिए किया है.
  • हर प्रोसेस के लिए एक से ज़्यादा बार initialize WorkManager की कोशिश करने पर, अब 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 को स्वीकार नहीं करते.
  • हर प्रोसेस के लिए एक से ज़्यादा बार initialize WorkManager की कोशिश करने पर, अब 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/62334005
  • fallbackToDestructiveMigrationOnDowngrade: यह RoomDatabase.Builder में एक नया एपीआई है. डाउनग्रेड किए जाने पर, डेटाबेस अपने-आप फिर से बनता है. b/110416954
  • ignoredColumns: यह @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 को रिलीज़ किया गया.

नई सुविधाएं

एपीआई में किए गए बदलाव

  • ब्रेकिंग बदलाव: नेविगेटर navigate() वाले तरीके में अब Navigator.Extras पैरामीटर होता है.
  • NavController का getGraph() तरीका NonNull b/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/111408337
  • RescheduleReceiver का इस्तेमाल सिर्फ़ तब चालू करें, जब WorkRequests को इसकी ज़रूरत हो. b/111765853

24 जुलाई, 2018

WorkManager

WorkManager 1.0.0-alpha05 को रिलीज़ किया गया. इसमें ज़रूरी गड़बड़ियां ठीक की गई हैं और बदलावों को लॉग किया गया है.

एपीआई में किए गए बदलाव

  • WorkManager.getInstance() को अब @Nullable के बजाय @NonNull से एनोटेट किया जाता है. इसके बजाय, मैन्युअल तौर पर शुरू करने के मामलों में, अगर सिंगलटन सही तरीके से शुरू नहीं होता है, तो यह तरीका IllegalStateException देगा. यह एपीआई में किए गए बदलावों को ट्रैक करना.
  • नया एपीआई Configuration.Builder.setMinimumLoggingLevel(int) जोड़ा गया है, जो WorkManager को जानकारी देने की क्षमता को कंट्रोल कर सकता है. डिफ़ॉल्ट रूप से, WorkManager Log.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, setDemoControllerIndex b/79995048 हो जाएगा
    • उदाहरण के लिए, action_show_settings, actionShowSettings b/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/79996760

  • Worker.getRunAttemptCount(), दिए गए Worker के लिए मौजूदा रन काउंट दिखाता है. b/79716516

  • WorkManager.enqueueUniquePeriodicWork(String uniqueWorkName, ExistingPeriodicWorkPolicy existingPeriodicWorkPolicy, PeriodicWorkRequest periodicWork), आपको यूनीक PeriodicWorkRequest के लिए, सूची में शामिल करने की अनुमति देता है. b/79600647

  • WorkManager.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/79656847

  • NavDeepLinkBuilder के इस्तेमाल के दौरान, StackOverflowError को ठीक किया गया. b/109653065

  • नेस्ट किए गए ग्राफ़ पर वापस जाते समय, IllegalArgumentException को ठीक किया गया. b/80453447

  • launchSingleTop का इस्तेमाल करते समय ओवरलैप होने वाले फ़्रैगमेंट से जुड़ी समस्या ठीक की गई. b/79407969

  • नेविगेशन, अब नेस्ट किए गए ग्राफ़ के लिए सही सिंथेटिक बैक स्टैक बनाता है. b/79734195

  • नेविगेशन यूज़र इंटरफ़ेस (यूआई) अब नेस्ट किए गए ग्राफ़ का MenuItem के तौर पर इस्तेमाल करने पर, सही आइटम को हाइलाइट करेगा. बी/109675998

एपीआई में किए गए बदलाव

  • NavOptions में, कार्रवाइयों और उससे जुड़े एपीआई के लिए clearTask एट्रिब्यूट को हटा दिया गया है. b/80338878

  • NavOptions में, कार्रवाइयों और उससे जुड़े एपीआई के लिए 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/79443878

  • Data.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/63807999

  • SupportSQLiteQuery में अब एक getArgCount() तरीका उपलब्ध है, जिससे नंबर मिलता है पैरामीटर का इस्तेमाल किया जा सकता है. b/67038952

गड़बड़ियां ठीक की गईं

  • @RawQuery अब पेजिंग क्वेरी के लिए ठीक से काम करता है. b/72600425

  • रूम के नाम अब सही तरीके से Dao क्लास जनरेट किए गए हैं, ताकि नाम एक-दूसरे से मैच न होने पर गड़बड़ी से बचा जा सके दो या उससे ज़्यादा Dao इंटरफ़ेस, एक ही पैकेज में इनर क्लास हैं और उनमें वही नाम. b/73536380

  • Pojo में जेनेरिक फ़ील्ड टाइप को एक्सटेंशन के सदस्य के तौर पर सही तरीके से पार्स किया गया है क्लास. b/73534868

  • Dao इंटरफ़ेस में मौजूद क्वेरी पैरामीटर, जो डिपेंडेंसी से इनहेरिट किए गए हैं आर्टफ़ैक्ट को अब सही तरीके से पार्स किया गया है. b/68118746

  • @Relation के लिए जनरेट की गई क्वेरी, अब फ़ील्ड के नाम को सही तरीके से छोड़ देती हैं. b/70925483

27 फ़रवरी, 2018

पेजिंग 1.0.0-alpha6 को सपोर्ट लाइब्रेरी की रिलीज़ 27.1.0 के साथ रिलीज़ किया गया. ListAdapter और उससे जुड़ी कुछ क्लास को पेजिंग लाइब्रेरी से सीधे Recyclerview में ट्रांसफ़र कर दिया गया है. साथ ही, कुछ नामों के साथ-साथ कुछ नाम भी बदले गए हैं, ताकि कुछ खास क्लास के फ़ंक्शन को बेहतर तरीके से समझने में मदद मिल सके. पेजिंग के इस ऐल्फ़ा रिलीज़ में, एपीआई उल्लंघन से जुड़े अहम बदलाव होने की आखिरी संभावना है.

एपीआई में किए गए बदलाव

  • क्लास को recyclerview-v7 में ले जाया गया:
    • ListAdapter
  • क्लास के नाम बदले गए और उन्हें recyclerview-v7 पर ले जाया गया:
    • ListAdapterHelper -> AsyncListDiffer
    • ListAdapterConfig -> AsyncDifferConfig
    • DiffCallback -> 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() तरीका. बी/67757002

  • Guava सहायता: रूम अब 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.0
  • android.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/71458963
  • fallBackToDestructiveMigrationsFrom: 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 के तौर पर रिलीज़ करें.

गड़बड़ियां ठीक की गईं

रिलीज़ कैंडिडेट - 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/66525578

    • ProGuard के लिए, कृपया अपनी 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/35754819

  • MediatorLiveData की ऑब्ज़र्वर तुलना से जुड़ी गड़बड़ी को ठीक किया गया. 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

एपीआई में किए गए बदलाव

1.0.0 ऐल्फ़ा 7 - 26 जुलाई, 2017

गड़बड़ियां ठीक की गईं

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/38488747

  • DAO के पास अब टाइप पैरामीटर वाला सुपर क्लास/इंटरफ़ेस हो सकता है. b/62103620

1.0.0 ऐल्फ़ा 2 - 2 जून, 2017

एपीआई में किए गए बदलाव

गड़बड़ियां ठीक की गईं

  • लाइफ़साइकल के लिए ProGuard फ़ाइलें. (b/62113696)
  • टाइप कन्वर्टर के साथ डेटा की हानि. (b/62100716)
  • @Insert क्वेरी से Long[] लौटाने की अनुमति दें.

1.0.0 ऐल्फ़ा 1 - 17 मई, 2017

MinSDK टूल: 14

सामान्य सलाह

  • हालांकि, हमने लॉन्च करने से पहले काफ़ी टेस्ट किए, लेकिन स्ट्रक्चर कॉम्पोनेंट अभी ऐल्फ़ा में मौजूद हैं. अगर आपको कोई प्रोडक्शन ऐप्लिकेशन बनाना है, तो ध्यान रखें कि 1.0 वर्शन के रिलीज़ होने से पहले, एपीआई बदल जाएगा और हो सकता है कि यह पूरी तरह मज़बूत न हो. अगर आपको लाइब्रेरी में इस्तेमाल होने वाली लाइब्रेरी में समस्याओं को डीबग करने में दिक्कत नहीं है, तो हम आपको पहले साइड प्रोजेक्ट में आर्किटेक्चर कॉम्पोनेंट इस्तेमाल करने का सुझाव देते हैं.

  • हम यह सुझाव नहीं दे रहे हैं कि सभी उपयोगकर्ता आज ही माइग्रेट करें. हमारे पास आर्किटेक्चर कॉम्पोनेंट की 1.0 रिलीज़ के लिए, माइग्रेशन गाइड तैयार है.

सीमाएं और समस्याएं जिनके बारे में पता है