Mimari Bileşenleri Sürüm Notları Arşivi

15 Ocak 2019

WorkManager

1.0.0-beta02 adlı WorkManager serbest bırakıldı. Bu sürüm, bazı hata düzeltmeleri içermektedir.

Hata Düzeltmeleri

  • Android 6.0 (API düzeyi 23) çalıştıran cihazlarda, periyodik çalışmaların aralık başına birden fazla kez çalıştırılmasına neden olan uç durum düzeltildi. b/121998363
  • Android 5.1 (API düzeyi 22) veya önceki sürümleri çalıştıran cihazlarda ConcurrentModificationException sorunu düzeltildi. b/121345393
  • Android 5.1 (API düzeyi 22) veya önceki sürümleri çalıştıran cihazlarda Kısıtlamalar karşılanmadığında oluşan hatalı iş yürütülmesi düzeltildi. b/122578012
  • Bazı uç durumlarda daha hızlı olması için optimize edilmiş iş tamamlama süreci. b/122358129
  • WorkManager'ın kullandığı birden fazla LiveData örneği arasındaki olası yarış koşullarını ele almak için bir değişiklik eklendi.
  • 1.1.1-rc01 yerine Room bağımlılığı 1.1.1 kullanacak şekilde taşındı; bu sürümler aynı. b/122578011

19 Aralık 2018

WorkManager

1.0.0-beta01 adlı WorkManager serbest bırakıldı. Bu sürümde API değişikliği yoktur. Bundan sonra WorkManager'ın, kritik bir sorun olmadığı sürece bir sonraki sürüme kadar API'nin kararlı durumda kalması beklenmektedir. Bu sürüm, bazı hata düzeltmeleri içermektedir.

Hata Düzeltmeleri

  • Başarıyla tamamlanmış üst iş ortağının daha önce iptal edilen alt öğeleri artık çalışmayacaktır. b/120811767
  • Düzgün şekilde başlatılan günlük sınıfları (genellikle testler sırasında gösterilir).

18 Aralık 2018

1.0.0-alpha09 gezinme paneli serbest bırakıldı. Bu sürüm, zarar veren API değişiklikleri içeriyor. Lütfen aşağıdaki Kırıcı Değişiklikler bölümüne bakın.

android.arch.navigation:navigation-testing yapısını geliştirmeye devam etmemeyi seçtik. NavController dahili testinde faydalı olduğu kanıtlanmış olsa da doğru navigate() çağrılarının yapıldığını doğrulamak için NavController örneğiyle alay etme gibi alternatif test stratejileri kullanmanızı önemle tavsiye ederiz. Bu yaklaşım, AndroidDevSummit 2018'deki Tek Etkinlik konuşmasında ayrıntılı olarak tartışılmıştır. Özellikle Navigasyon ile testlere ilişkin ek belgeler üzerinde çalışacağız.

Yeni Özellikler

  • menuCategory="secondary" içeren MenuItem öğeleri, NavigationUI yöntemleriyle kullanıldığında artık arka yığını göstermiyor. b/120104424
  • AppBarConfiguration artık navController.navigateUp() false değerini döndürdüğünde çağrılacak yedek OnNavigateUpListener örneği ayarlamanızı sağlıyor. b/79993862 b/120690961

Zarar Veren Değişiklikler

  • argType="reference" ile bir <argument> kullanıldığında, Navigasyon artık referansı ayrıştırmaz, bunun yerine ham kaynak kimliğini sağlar. b/111736515
  • onNavDestinationSelected() artık varsayılan olarak gezinme grafiğinizin başlangıç noktasına geri dönüyor. Böylece setup yöntemleriyle tutarlı hale geliyorlar. Geri yığının ortaya çıkmasını önlemek için MenuItem öğenize menuCategory="secondary" ekleyin. aosp/852869
  • Oluşturulan Args sınıflarının fromBundle() yöntemleri artık null özellikli Bundle yerine null olmayan Bundle değerini alır aosp/845616

Hata Düzeltmeleri

  • Bağımsız değişkenler artık derin bağlantılardan her zaman dize olarak değil, doğru argType olarak düzgün şekilde ayrıştırılıyor b/110273284
  • Navigasyon, artık herkese açık kaynaklarını doğru şekilde dışa aktarıyor b/121059552
  • Safe Args artık Android Gradle Plugin 3.4 Canary 4 ve sonraki sürümleriyle uyumlu b/119662045

12 Aralık 2018

WorkManager

1.0.0-alpha13 adlı WorkManager serbest bırakıldı. Bu sürüm, bazı Kotlin kullanıcılarının işine yarayacak küçük bir API değişikliği içeriyor.

API Değişiklikleri

  • androidx.work.Result, ListenableWorker adlı öğrencinin iç sınıfı haline taşındı. Bu, Kotlin'in en üst düzey Result sınıfıyla çakışmaların yeniden düzenlenmesini önler. Bu, olumsuz bir API değişikliğidir. b/120564418

Kırıcı API Değişiklikleri

  • androidx.work.Result, ListenableWorker adlı öğrencinin iç sınıfı haline taşındı.

6 Aralık 2018

Sayfalama

2.1.0-rc01 sayfası, 2.1.0-beta01 tarihinden itibaren herhangi bir değişiklik olmadan yayınlandı.

1.0.0-alpha08 gezinme paneli serbest bırakıldı. Bu sürüm, zarar veren API değişiklikleri içeriyor. Lütfen aşağıdaki Kırıcı Değişiklikler bölümüne bakın.

Yeni Özellikler

  • Hedef etiketleri, NavigationUI yöntemleriyle kullanıldığında artık otomatik olarak android:label içindeki {argName} örneğini doğru bağımsız değişkenle değiştirecek b/80267266
  • Gezinme artık Destek Kitaplığı 28.0.0'a bağlıdır b/120293333

Zarar Veren Değişiklikler

  • OnNavigatedListener, OnDestinationChangedListener b/118670572 olarak yeniden adlandırıldı
  • OnDestinationChangedListener artık aosp/837142 bağımsız değişkenlerinin Bundle kadarını da iletir
  • app:clearTask ve app:launchDocument özellikleri ile ilişkilendirilmiş yöntemleri kaldırıldı. Geri yığınınızdaki tüm hedefleri kaldırmak için grafiğinizin köküyle birlikte app:popUpTo kodunu kullanın. b/119628354
  • ActivityNavigator.Extras artık Builder kalıbı kullanıyor ve Intent.FLAG_ACTIVITY_ flag'lerini aosp/828140 ayarlama özelliğini ekliyor.
  • NavController.onHandleDeepLink, handleDeepLink aosp/836063 olarak yeniden adlandırıldı
  • Alt sınıflandırmaya uygun olmayan birçok sınıf ve yöntem (ör. NavOptions, NavInflater, NavDeepLinkBuilder ve AppBarConfiguration) final aosp/835681
  • Kullanımdan kaldırılan NavHostFragment.setGraph() yöntemi aosp/835684 kaldırıldı
  • Kullanımdan kaldırılan NavigationUI.navigateUp(DrawerLayout, NavController) yöntemi kaldırıldı. aosp/835684
  • Parça oluşturma işlemi FragmentNavigator konumuna taşındı. Bu sayede, FragmentFactory adlı parça oluşturma yetkisi vermek artık daha kolay. b/119054429
  • NavGraphNavigator oluşturucu artık Context aosp/835340 gerektirmiyor
  • NavigatorProvider artık bir arayüz yerine bir sınıftır. getNavigatorProvider() tarafından döndürülen NavigatorProvider işlevinde değişiklik yapılmadı. aosp/830660
  • NavDestination.navigate() kaldırıldı. Bunun yerine Navigator numaralı telefondan navigate() numaralı telefonu arayın. aosp/830663
  • Navigator öğesinin önemli ölçüde yeniden düzenlenmesi, OnNavigatorNavigatedListener ihtiyacını ortadan kaldırması ve navigate öğesinin, gidilen NavDestination öğesini döndürmesi.
  • Navigator örnekleri artık NavController ürününe pop etkinlik gönderemez. Geri düğmesine basılmasını engellemek ve navController.popBackStack() numaralı telefonu aramak için OnBackPressedCallback kullanmayı düşünün. aosp/833716

Hata Düzeltmeleri

  • Hedef, <navigation> öğesi olduğunda popUpTo artık tutarlı şekilde çalışıyor b/116831650
  • İç içe yerleştirilmiş grafikler kullanıldığında IllegalArgumentException hatasına yol açan çeşitli hatalar düzeltildi b/118713731 b/113611083 b/113346925 b/113305559
  • <activity> hedeflerinin dataPattern özelliği artık toString() çağrısı yaparak Dize olmayan bağımsız değişkenlerdeki bağımsız değişkenleri dolduracak b/120161365

Güvenli Arg'lar

  • Güvenli Anahtarlar, Enum değerleri dahil olmak üzere Serialize edilebilir nesneleri destekler. Sıralama türleri, sınıf adı olmadan enum sabit değerini kullanarak varsayılan bir değer ayarlayabilir (ör. app:defaultValue="READ") b/111316353
  • Safe Args, desteklenen tüm türlerde dizileri destekler b/111487504
  • Güvenli Aramalar artık kaynak dizinlerinin alt klasörlerini yok sayıyor b/117893516
  • Güvenli Aramalar, uygun durumlarda @Override ek açıklamaları ekler b/117145301

5 Aralık 2018

WorkManager

1.0.0-alpha12 adlı WorkManager serbest bırakıldı. Bu sürüm, bozulan bazı API değişiklikleri içeriyor. Lütfen aşağıdaki Kırıcı API Değişiklikleri bölümüne bakın. Bu sürüm büyük olasılıkla ilk beta programımız olarak yayınlanacaktır. alpha12, kapsamlı doküman güncellemeleri de içerir.

API Değişiklikleri

  • Yeni work-rxjava2 yapısı, RxWorker uygulamasını tanıtıyor. Bu, Single<Payload> bekleyen bir ListenableWorker.
  • Firebase JobDispatcher desteği yakında sonlandırılacağı için bu destek sonlandırılmıştır. Dolayısıyla, beta sürümüne girerken work-firebase yapısı artık güncellenmeyecek. Gelecekte bir alternatif eklemeyi değerlendireceğiz.
  • Payload, Result olarak birleştirildi. Result artık Result.success() (veya Result.success(Data)), Result.failure() (veya Result.failure(Data)) ve Result.retry() aracılığıyla edinebileceğiniz üç somut uygulamaya sahip bir "kapalı sınıf" oldu. ListenableFuture öğeleriniz artık Payload yerine Result sonucunu veriyor. Worker öğeleri, Data çıkışı için getter ve setter yöntemlerine sahip değil. Bu, zarara yol açacak bir değişiklik.
  • Yavaş tetiklenen içerik URI'lerini daha iyi desteklemek için Constraints.Builder.setTriggerContentMaxDelay(long, TimeUnit), Constraints.Builder.setTriggerContentUpdateDelay(long, TimeUnit) ve varyantlar eklendi. b/119919774
  • WorkRequest.Builder.setBackoffCriteria(BackoffPolicy, Duration) varyant eklendi. Bu yöntem için API 26 gerekir.
  • Operation.await() ve ListenableFuture.await() Kotlin uzantı yöntemleri eklendi.
  • Operation.getException() adlı dosya Operation.getThrowable() olarak yeniden adlandırıldı. Bu, zarara yol açacak bir değişiklik.
  • Bu ContentUriTriggers sınıfı ve bunlara referans veren yöntemler artık herkese açık olarak kullanılamaz. Bu, zarara yol açacak bir değişiklik.
  • API'yi basitleştirmek için WorkManager, WorkContinuation ve OneTimeWorkRequest uygulamalarındaki diğer değişken yöntemleri kaldırıldı. Derleme sorunlarını düzeltmek için mevcut değişkenlerinizi Arrays.asList(...) ile sarmalayabilirsiniz. Her yöntemin tek bağımsız değişkenli sürümlerini eklemeye devam ederiz. Bu, zarara yol açacak bir değişiklik.
  • WorkContinuation.combine(OneTimeWorkRequest, *) varyant kaldırıldı. Kafa karıştırıcı bir API sunuyorlardı; mevcut combine yöntemleri daha anlaşılırdır. Bu, zarara yol açacak bir değişiklik.

Hata Düzeltmeleri

  • Marshmallow öncesi uygulamalar, halihazırda yürütülen bir görevin işlem çıkışını kurtarmada artık daha güvenilir.
  • observeForever aracılığıyla gözlemlenen LiveData, WorkManager aracılığıyla izlenir. Bu, Oda Kitaplığı düzeltmesinin eski bir sürümü. b/74477406
  • Serileştirilmiş nesne maksimum boyutunu aşarsa Data.Builder.build() artık bir istisna oluşturuyor. Bu durum, daha önce yalnızca düzgün şekilde işleyemediğiniz arka plandaki ileti dizilerinde gerçekleşiyordu.
  • Durdurulan ve iptal edilen diğer çalışmalar; getWorkInfoById(), ListenableWorker.onStopped() boyunca CANCELLED State ile bir WorkInfo döndürür.
  • ListenableWorker öğesinde null Result işlemini başarısız olarak değerlendir. b/120362353
  • API 24 çalıştıran Shield Tabletler için bazen IllegalArgumentException hata veren spekülatif düzeltme. b/119484416

Kırıcı API Değişiklikleri

  • Firebase JobDispatcher desteği yakında sonlandırılacağı için bu destek sonlandırılmıştır. Dolayısıyla, beta sürümüne girerken work-firebase yapısı artık güncellenmeyecek. Gelecekte bir alternatif eklemeyi değerlendireceğiz.
  • Payload, Result olarak birleştirildi. Result artık Result.success() (veya Result.success(Data)), Result.failure() (veya Result.failure(Data)) ve Result.retry() aracılığıyla edinebileceğiniz üç somut uygulamaya sahip bir "kapalı sınıf" oldu. ListenableFuture öğeleriniz artık Payload yerine Result sonucunu veriyor. Worker öğeleri, Data çıkışı için getter ve setter yöntemlerine sahip değil.
  • Operation.await() ve ListenableFuture.await() Kotlin uzantı yöntemleri eklendi.
  • Operation.getException() adlı dosya Operation.getThrowable() olarak yeniden adlandırıldı.
  • Bu ContentUriTriggers sınıfı ve bunlara referans veren yöntemler artık herkese açık olarak kullanılamaz.
  • API'yi basitleştirmek için WorkManager, WorkContinuation ve OneTimeWorkRequest uygulamalarındaki diğer değişken yöntemleri kaldırıldı. Derleme sorunlarını düzeltmek için mevcut değişkenlerinizi Arrays.asList(...) ile sarmalayabilirsiniz. Her yöntemin tek bağımsız değişkenli sürümlerini eklemeye devam ederiz.
  • WorkContinuation.combine(OneTimeWorkRequest, *) varyant kaldırıldı. Kafa karıştırıcı bir API sunuyorlardı; mevcut combine yöntemleri daha anlaşılırdır.

4 Aralık 2018

Room

2.1.0-alpha03 adlı oda, eş yordam desteği ve çeşitli hata düzeltmeleriyle birlikte serbest bırakıldı.

API Değişiklikleri

  • @Fts3/@Fts4 içindeki FTS tokenizer artık Sıralama yerine Dize alıyor. Bu, özel belirteçleştiricilerin Oda tarafından kullanılmasına olanak tanır. Yerleşik belirteçler FtsOptions öğesinde dize sabitleri olarak tanımlanmaya devam eder. b/119234881

Yeni Özellikler

  • Koutinler: DAO yöntemleri artık askıya alma işlevleri olabilir. Odada askıya alma işlevlerini desteklemek için room-coroutines adlı yeni bir yapı yayınlandı. b/69474692
  • @Insert, @Delete veya @Update ek açıklamasına sahip DAO yöntemleri artık döndürme türü olarak ListenableFuture değerini destekliyor. b/119418331

Hata Düzeltmeleri

  • Odanın, @Entity özelliğinin ignoredColumns özelliğindeki sütunları içeren bir oluşturucuyu yanlışlıkla bulmaya çalışmasına neden olan hata düzeltildi. b/119830714
  • Odanın, oluşturulan uygulamada DAO yöntem parametrelerini nihai olarak işaretlememesine neden olan hata düzeltildi. b/118015483
  • Özel simgeler içeren bir sorguyla ilgili hata bildirilirken Oda işlemcisinin kilitlenmesine neden olan hata düzeltildi. b/119520136
  • Odanın, IN ifadesinin bağımsız değişkenleri olarak diğer çeşitli Collection uygulamalarını reddetmesine neden olan hata düzeltildi. b/119884035
  • Odadan döndürülen LiveData'nın, sonsuza kadar gözlemlendikten sonra çöp toplamasına neden olan ve artık yeni veri yayınlamamasına yol açan hata düzeltildi. b/74477406
  • Kilit anlaşmazlığını azaltmak için RoomDatabase uygulamasının kapatma kilidi güncellendi. b/117900450

8 Kasım 2018

WorkManager

1.0.0-alpha11 adlı WorkManager serbest bırakıldı. Bu sürüm, beta tarihinde kararlı API'ye dönüşecek birçok değişiklik içeriyor. Bu sürümde önemli API değişiklikleri bulunuyor. Lütfen aşağıdaki Kırıcı API Değişiklikleri bölümüne bakın.

API Değişiklikleri

  • work-runtime-ktx, yeni bir CoroutineWorker sunuyor.
  • WorkStatus, WorkInfo olarak yeniden adlandırıldı. İlgili tüm getStatus yöntemi varyantları, karşılık gelen getWorkInfo varyantları olarak yeniden adlandırıldı. Bu, zarara yol açacak bir değişiklik.
  • ListenableWorker.onStopped(), artık WorkRequest işleminin iptal edilip edilmediğini temsil eden bir boole bağımsız değişkenini kabul etmez. WorkManager artık bu ayrımı yapmamaktadır. Bu, zarara yol açacak bir değişiklik.
  • androidx.work.test paketi, androidx.work.testing paket olarak yeniden adlandırıldı. Bu, zarara yol açacak bir değişiklik.
  • Constraints üzerindeki kümeleyiciler artık herkese açık API'nin bir parçası değil. Bu, zarara yol açacak bir değişiklik.
  • WorkerParameters.getTriggeredContentUris() ve WorkerParameters.getTriggeredContentAuthorities() daha önce dizi döndürdü. Artık bu yöntemler Koleksiyonlar'ı döndürüyor. Bu, zarara yol açacak bir değişiklik.
  • ListenableWorker.onStartWork(), ListenableWorker.startWork() olarak yeniden adlandırıldı. Bu, zarara yol açacak bir değişiklik.
  • WorkStatus oluşturucu artık genel API'nin bir parçası değil. Bu, zarara yol açacak bir değişiklik.
  • Configuration.getMaxJobSchedulerID() ve Configuration.getMinJobSchedulerID(), sırasıyla Configuration.getMinJobSchedulerId() ve Configuration.getMaxJobSchedulerId() olarak yeniden adlandırıldı. Bu, zarara yol açacak bir değişiklik.
  • API'nin ergonomisini iyileştirmek için herkese açık API'ye çok sayıda @NonNull ek açıklaması eklendi.
  • WorkContinuation oluşturmak zorunda kalmadan benzersiz OneTimeWorkRequest'leri sıraya almak için WorkManager.enqueueUniqueWork() API ekleyin.
  • WorkManager üzerindeki tüm enqueue ve cancel yöntemleri artık yeni bir Operation türü döndürüyor. Bu, zarara yol açacak bir değişiklik.
  • enqueue işlevinin hiçbir varyantları artık WorkRequest için değişkenleri kabul etmiyor. Bu, zarara yol açacak bir değişiklik. Bunun yerine Koleksiyonlar'ı kullanın. Mevcut kodu değiştirmek için Arrays.asList() öğesini kullanabilirsiniz. Bunu, API yüzeyini ve yöntem sayısını azaltmak için yaptık.
  • WorkManager için işlem başına birden fazla kez initialize işlemi yapılmaya çalışılırsa IllegalStateException sonucu elde edilir. Bu, zarara yol açacak bir değişiklik.

Hata Düzeltmeleri

  • work-runtime-ktx yapısındaki WorkRequest.Builder öğeleri artık ListenableWorker kullanıyor. Düzeltmeler b/117666259
  • PeriodicWork için bir sonraki çalışma zamanının gelecekte olduğundan emin olun. b/118204399 düzeltildi
  • Uygulama başlatılırken WorkManager kullanırken olası disk G/Ç'sini kaldırın. b/117796731 düzeltmeleri
  • WorkConstraintsTracker öğesindeki bir yarış durumunu düzeltin. android-workmanager/issues/56 sorunlarını düzeltir

Kırıcı API Değişiklikleri

  • WorkStatus, WorkInfo olarak yeniden adlandırıldı. İlgili tüm getStatus yöntemi varyantları, karşılık gelen getWorkInfo varyantları olarak yeniden adlandırıldı.
  • ListenableWorker.onStopped(), artık WorkRequest işleminin iptal edilip edilmediğini temsil eden bir boole bağımsız değişkenini kabul etmez. WorkManager artık bu ayrımı yapmamaktadır.
  • androidx.work.test paketi, androidx.work.testing paket olarak yeniden adlandırıldı.
  • Constraints üzerindeki kümeleyiciler artık herkese açık API'nin bir parçası değil.
  • WorkerParameters.getTriggeredContentUris() ve WorkerParameters.getTriggeredContentAuthorities() daha önce dizi döndürdü. Artık bu yöntemler Koleksiyonlar'ı döndürüyor.
  • ListenableWorker.onStartWork(), ListenableWorker.startWork() olarak yeniden adlandırıldı.
  • WorkStatus oluşturucu artık genel API'nin bir parçası değil.
  • Configuration.getMaxJobSchedulerID() ve Configuration.getMinJobSchedulerID(), sırasıyla Configuration.getMinJobSchedulerId() ve Configuration.getMaxJobSchedulerId() olarak yeniden adlandırıldı.
  • WorkManager üzerindeki tüm enqueue ve cancel yöntemleri artık yeni bir Operation türü döndürüyor.
  • enqueue işlevinin hiçbir varyantları artık WorkRequest için değişkenleri kabul etmiyor.
  • WorkManager için işlem başına birden fazla kez initialize işlemi yapılmaya çalışılırsa IllegalStateException sonucu elde edilir.

1 Kasım 2018

Sayfalama

2.1.0-beta01 sayfası, 2.1.0-alpha01 tarihinden itibaren herhangi bir değişiklik olmadan yayınlandı.

30 Ekim 2018

Room

2.1.0-alpha02 adlı oda, çeşitli hata düzeltmeleri ve yeni bir özellikle birlikte serbest bırakıldı.

Yeni Özellikler

  • @Relation öğesinde bir @DatabaseView öğesine referans verme desteği eklendi. b/117680932

Hata Düzeltmeleri

  • Bir Rx döndürme türünden abone olma ve bu tür gönderme işlemleri sırasında Odanın ana iş parçacığında disk G/Ç'si gerçekleştirmesine neden olan hata düzeltildi. b/117201279
  • Odanın, Kotlin varlık sınıfındaki bir alan için uygun tür dönüştürücü bulamamasına neden olan hata düzeltildi. b/111404868
  • Odanın, bağımsız değişkeni olmayan varsayılan Kotlin yöntemini içeren DAO arayüz uygulaması için yanlış kod oluşturmasına neden olan hata düzeltildi. b/117527454
  • Odanın SQLite dil bilgisi ayrıştırıcısı güncellendi ve uzun derleme sürelerine neden olan bir performans sorunu düzeltildi. b/117401230

29 Ekim 2018

1.0.0-alpha07 gezinme rotası, hata düzeltmeleri ve API değişiklikleriyle yayınlandı.

Yeni Özellikler

  • Yeni AppBarConfiguration sınıfı, hangi hedeflerin üst düzey hedef olarak kabul edileceğini özelleştirmenize olanak tanır. Ayrıntılar için güncellenen belgelere göz atın. b/117333663
  • Artık bağımsız değişkenleri grafiğinizin başlangıç hedefine aktarabilirsiniz b/110300470
  • Derin bağlantılar artık nokta, kısa çizgi ve artı işareti içeren özel şemaları desteklemektedir. b/112806402

Zarar Veren Değişiklikler

  • navigation-testing-ktx modülü, navigation-testing artifact içine daraltıldı ve artık yayınlanmayacak.
  • navigation-testing yapısı artık Kotlin standart kitaplığına bağımlıdır. API, Kotlin kurallarıyla daha tutarlı olacak şekilde değiştirilmiştir ancak Java'da yazılan testlerde API'yi kullanmaya devam edebilirsiniz.
  • Meta veri manifesti kayıtlı gezinme grafikleri artık desteklenmemektedir. b/118355937
  • İşlemler artık <activity> hedeflerine eklenemez. aosp/785539

Hata Düzeltmeleri

  • Derin bağlantılar artık sorgu parametrelerini doğru şekilde ayrıştırıyor. b/110057514
  • Etkinlik hedefleri artık tüm giriş ve çıkış animasyonlarını doğru bir şekilde uyguluyor. b/117145284
  • Özel gezginler kullanılırken yapılandırma değişikliklerinden sonra meydana gelen kilitlenme düzeltildi. b/110763345

Güvenli Arg'lar

  • Güvenli bağımsız değişkenler, artık Android Gradle Eklentisi 3.2.1'e sabit bağımlılığa sahiptir. b/113167627
  • Dahili sınıflar için artık talimatlar oluşturulabilir. b/117407555
  • <include> grafiği için Yol Tarifi oluşturma ile ilgili sorun düzeltildi. b/116542123

12 Ekim 2018

Sayfalama

2.1.0-alpha01 sayfası, iki önemli eklemeyle (sayfa ekleme ve her yapı için KTX uzantı kitaplıklarının) yanı sıra çeşitli API değişiklikleri ve hata düzeltmeleriyle yayınlandı.

API Değişiklikleri

  • Bellekteki yüklenen öğe sayısını sınırlamak için PagedList.Config.Builder.setMaxSize() eklendi.
  • PagedList.Config.Builder için Kotlin alternatifi olarak androidx.paging.Config() eklendi
  • PagedList.Builder için Kotlin alternatifi olarak androidx.paging.PagedList() eklendi
  • LivePagedListBuilder için Kotlin alternatifi olarak DataSourceFactory.toLiveData() eklendi
  • RxPagedListBuilder için Kotlin alternatifleri olarak DataSourceFactory.toObservable() ve toFlowable() eklendi
  • PagedList değiştirilirken dinlemesi için AsyncPagedListDiffer.addPagedListListener() eklendi. b/111698609
  • Eski ve yeni listeyi karşılayan PagedListAdapter.onCurrentListChanged() varyant eklendi, önceki varyant kullanımdan kaldırıldı.
  • Sayfa listesi görüntülenirse/gösterilirse farkın ardından tetiklenen ek bir geri çağırma alan PagedListAdapter/AsyncPagedListDiffer.submitList() varyantları eklendi. Bu, PagedList değişikliğini diğer kullanıcı arayüzü güncellemeleriyle senkronize etmenize olanak tanır. b/73781068
  • Hafızanızda kaç öğe olduğunu bildirmek için PagedList.getLoadedCount() eklendi. Yer tutucular devre dışı bırakılırsa döndürülen değerin her zaman .size() değerine eşit olacağını unutmayın.

Hata Düzeltmeleri

  • Listelerin yeniden kullanılması durumunda fark oluştururken karşılaşılan yarış durumu düzeltildi b/111591017
  • Dizin geçersiz olduğunda PagedList.loadAround() artık IndexOutOfBoundsException hatası veriyor. Daha önce, belirsiz başka bir istisnayla çökebiliyordu.
  • b/113122599'un, değişmeyen verilerle birlikte son derece küçük bir başlangıç yükleme boyutunun daha fazla yüklenmemesine neden olması durumu düzeltildi.

11 Ekim 2018

WorkManager

WorkManager 1.0.0-alpha10, geliştirici tarafından kontrol edilen eşzamansız çalışma desteği ile yayınlandı. Bu sürümde önemli API değişiklikleri bulunuyor. Lütfen aşağıdaki Kırıcı API Değişiklikleri bölümüne bakın.

WorkManager'ın, alfa döneminin son aşamalarına girdiğini tahmin ediyoruz. Beta sürümünde API'nin kararlı olmasını bekliyoruz, bu nedenle lütfen sorun izleyicimize geri bildirim göndermek için biraz zaman ayırın.

API Değişiklikleri

  • Önceden deprecated yöntemlerinin ve sınıflarının tümü (özellikle varsayılan Worker kurucusu) kaldırıldı. Bu, olumsuz bir API değişikliğidir.
  • NonBlockingWorker dersinin adı ListenableWorker olarak değiştirildi. Bu ad artık herkese açık bir sınıf ve kullanıma hazır.
    • ListenableWorker, ana iş parçacığında çağrılan ListenableFuture<Payload> onStartWork() soyut yönteme erişim sağlar. İşleri eşzamansız olarak başlatmak ve işlemek size kalmıştır. Bu işlemi tamamladığınızda ListenableFuture öğesini uygun şekilde güncellemeniz gerekir. ListenableFuture öğelerinin referans uygulamaları alpha02 içindeki Futures paketinde sağlanmıştır (aşağıdaki WorkManager bölümüne bakın).
    • Worker, ListenableWorker kapsamını genişletir ve soyut Result doWork() yöntemiyle çalışmaya devam eder.
    • Bazı yöntemler ve üyeler Worker adlı kullanıcıdan ListenableWorker adlı kullanıcıya karıştırıldı.
    • Yakında, Kotlin eş yordamlarını (kararlı sürümler yayınlandıktan sonra) ve RxJava2'yi kullanan ListenableWorker'ler için referans uygulamaları sağlayacağız.
  • WorkerFactory arayüzü ve somut uygulama DefaultWorkerFactory, WorkerFactory adlı soyut sınıfta birleştirildi. Uygulama, varsayılan yansımaya dayalı davranışın, kullanıcı tarafından oluşturulan tüm WorkerFactory örnekleri için son çare olarak çağrılmasını sağlar. Bu, zarara yol açacak bir değişiklik.
  • WorkManager.synchronous(), WorkContinuation.synchronous() ve ilgili tüm yöntemler kaldırıldı. API'deki birçok yöntemin dönüş türü olarak ListenableFuture<Void> eklendi. Bu, olumsuz bir API değişikliğidir.
    • Artık ListenableFuture öğelerini kullanarak eşzamanlı olarak alabilir ve gözlemleyebilirsiniz. Örneğin WorkManager.enqueue(), eskiden void değerini döndürürken artık ListenableFuture<Void> değerini döndürüyor. İşlem tamamlandıktan sonra kodu çalıştırmak için ListenableFuture.addListener(Runnable, Executor) veya ListenableFuture.get() çağırabilirsiniz.
    • Bu ListenableFuture öğelerinin, işlemin başarılı veya başarısız olduğunu belirtmediğini, yalnızca tamamlandığını söylemeyi unutmayın. Bu bilgileri bulmak için yine de WorkManager'ı zincirleme yöntemler kullanmanız gerekir.
    • Bu nesnelere yapılan cancel() çağrılarını yok sayıyoruz. Çünkü bunlar kafa karıştırıcıdır ve anlam ifade etmesi zordur (işlemi veya ortaya çıkan işi iptal mi ediyorsunuz?). Bu, Future sözleşmesi kapsamında.
    • Eşzamanlı getStatus* yöntemleriyle uyumluluğu sağlamak için ListenableFuture varyant sağladık ve LiveData değerini döndüren mevcut varyantları, adında açıkça "LiveData" olacak şekilde yeniden adlandırdık (örneğin, getStatusesByIdLiveData(UUID)). Bu, son derece önemli bir API değişikliğidir.

Hata Düzeltmeleri

  • Yinelenen androidx-annotations.pro dosyalarıyla ilgili bilinen alfa09 sorunu düzeltildi. Gradle dosyanızdan exclude 'META-INF/proguard/androidx-annotations.pro' dosyasını silerek bu çözümü önceki sürüm notlarından kaldırabilirsiniz.
  • Yeni Worker oluşturucusunu tutmak için ProGuard yapılandırmaları eklendi. b/116296569
  • REPLACEd. b/116253486 ve b/116677275 olan bir yarış koşulunda olası NullPointerException düzeltme
  • WorkContinuation.combine() artık iki veya daha fazla yerine bir veya daha fazla WorkContinuation kabul ediyor. b/117266752

Kırıcı API Değişiklikleri

  • Önceden deprecated yöntemlerinin ve sınıflarının tümü (özellikle varsayılan Worker kurucusu) kaldırıldı.
  • WorkerFactory arayüzü ve somut uygulama DefaultWorkerFactory, WorkerFactory adlı soyut sınıfta birleştirildi.
  • WorkManager.synchronous() ve WorkContinuation.synchronous() kaldırıldı.
  • WorkManager.getStatus*() yöntemleri artık ListenableFuture değerini döndürüyor. WorkManager.getStatus*LiveData(), LiveData değerini döndürür.

Vadeli İşlemler

1.0.0-alpha02 vadeli işlemler çıktı.

API Değişiklikleri

  • Geliştiriciler artık ResolvableFuture ve AbstractResolvableFuture uygulamalarını ListenableFuture'in hafif beton uygulamaları olarak kullanabilirler.

8 Ekim 2018

Room

2.1.0-alpha01 adlı odanın rezervasyonu iptal edildi.

Yeni Özellikler

  • FTS: Oda artık FTS3 veya FTS4 eşleme tablosuna sahip öğeleri destekliyor. @Entity ile not verilmiş sınıflara artık tam metin eşleme tablosu olan bir sınıf bildirmek için @Fts3 veya @Fts4 ile ek açıklama eklenebilir. Daha fazla özelleştirme için FTS seçeneklerine ek açıklamanın yöntemleri aracılığıyla erişebilirsiniz. b/62356416
  • Görünümler: Oda artık bir sınıfın @DatabaseView ek açıklaması kullanılarak görünüm olarak da bilinen kayıtlı sorgu olarak beyan edilmesini destekliyor. b/67033276
  • Otomatik Değer: Oda artık AutoValue ek açıklamalı sınıfların varlık ve POJO olarak beyan edilmesini destekliyor. @PrimaryKey, @ColumnInfo, @Embedded ve @Relation oda ek açıklamaları artık otomatik değer ek açıklamalı sınıfın soyut yöntemlerinde bildirilebilir. Odanın ek açıklamaları düzgün şekilde anlayabilmesi için bu ek açıklamalara @CopyAnnotations eşlik etmesi gerektiğini unutmayın. b/62408420
  • Ek Rx İade Türleri Desteği: @Insert, @Delete veya @Update ek açıklamasına sahip DAO yöntemleri artık Completable, Single<T> ve Maybe<T> Rx döndürme türlerini desteklemektedir. b/63317956
  • @Relation ile Sabit Türler: Oda, daha önce @Relation ek açıklamalı alanın ayarlanabilir olmasını gerektiriyordu, ancak artık bunlar kurucu parametreler olabilir.
  • enableMultiInstanceInvalidation: RoomDatabase.Builder içinde, aynı veritabanı dosyasını kullanarak birden fazla RoomDatabase örneğinde geçersiz kılmayı etkinleştiren yeni bir API'dir. Bu çok örnekli geçersiz kılma mekanizması, birden çok işlemde de çalışır. b/62334005
  • fallbackToDestructiveMigrationOnDowngrade: Eski sürüme geçilmesi durumunda veritabanını otomatik olarak yeniden oluşturan, RoomDatabase.Builder içinde yeni bir API'dir. b/110416954
  • ignoredColumns: @Entity ek açıklaması içinde, yoksayılan alanları ada göre listelemek için kullanılabilen yeni bir API'dir. Bir varlıkta devralınan alanların yoksayılması için kullanışlıdır. b/63522075

API / Davranış Değişiklikleri

  • RoomDatabase içindeki mCallback ve mDatabase artık @Deprecated ve Oda'nın bir sonraki ana sürümünde kaldırılacak. b/76109329

Hata Düzeltmeleri

  • Oda'nın başlatma sırasında bozuk bir veritabanından düzgün şekilde kurtarılamamasına veya hatalı bir taşıma işleminin gerçekleştirilmesine neden olan iki sorun düzeltildi. b/111504749 ve b/111519144
  • Oda artık veri sınıflarında Kotlin’in birincil oluşturucusunu düzgün bir şekilde kullanacak ve alanların vars olarak belirtilmesine gerek kalmayacak. b/105769985

1 Ekim 2018

2.0.0-rc01 tarihinden itibaren değişiklik yapılmadan 2.0.0 adlı odanın rezervasyonu iptal edildi. 2.0.0 sayfası tek bir hata düzeltmesiyle yayınlandı.

Sayfalama

Hata Düzeltmeleri

  • PositionalDataSource ve b/114635383 yer tutucularının kullanıldığı çok hızlı kaydırmada oluşabilecek kilitlenme düzeltildi.

21 Eylül 2018

2.0.0 yaşam döngüsü, ViewModel'de 2.0.0-rc01 alanındaki bir hata düzeltmesiyle yayınlandı.

Yaşam döngüsü

Hata Düzeltmeleri

  • b/112230489 kurucularını yanlış bir şekilde kaldıran bir ViewModel koruma kuralı düzeltildi

20 Eylül 2018

1.0.0-alpha06 gezinme rotası, hata düzeltmeleri ve API değişiklikleriyle yayınlandı.

Yeni Özellikler

API Değişiklikleri

  • Köklü Değişiklik: Gezgin navigate() yöntemi artık bir Navigator.Extras parametresi alıyor.
  • NavController'ın getGraph() yöntemi artık NonNull b/112243286 oldu

Hata Düzeltmeleri

  • NavigationUI.setupWithNavController() artık belirli hedeflerden görüntülemeyle kullanıldığında görüntüleme sızdırmaz b/111961977
  • onSaveState() adlı gezinme aracı artık yalnızca b/112627079 bir kez çağrılıyor

Güvenli Arg'lar

  • b/79871405 mevcut olması durumunda navigasyon hedefi Yol Tarifi sınıfları artık üst tarafın Yol Tarifi sınıfının kapsamını genişletiyor
  • Directions ve Args sınıfları artık yararlı bir toString() uygulamasına sahip b/111843389

19 Eylül 2018

WorkManager

WorkManager 1.0.0-alpha09 hata düzeltmeleri, altyapı güncellemeleri ve API değişiklikleriyle yayınlandı.

Bilinen Sorun

Şu sorunla karşılaşırsanız: "İşletim sisteminden bağımsız 'META-INF/proGuard/androidx-annotations.pro' yoluna sahip birden fazla dosya bulundu" hatasını alıyorsanız, biz alfa10'da sorunu düzeltirken lütfen geçici bir çözüm olarak gradle dosyanıza aşağıdakileri yerleştirin:

Modern

android {
    packagingOptions {
        exclude 'META-INF/proguard/androidx-annotations.pro'
    }
}

Kotlin

android {
    packagingOptions {
        exclude("META-INF/proguard/androidx-annotations.pro")
    }
}

Hata Düzeltmeleri

  • "100 iş" hatası için gereken başka bir düzeltme eklendi. b/115560696
  • Yarış koşullarından kaynaklanan yabancı anahtar sınırlama hataları için bazı düzeltmeler eklendi. b/114705286
  • Temel Worker öğesine yetki verilmiş ConstraintTrackingWorker.onStopped(boolean) çağrıları. b/114125093
  • Firebase JobDispatcher için doğru minimum geri yükleme gecikmesini zorunlu kılın. b/113304626
  • Kitaplık içinde gelişmiş iş parçacığı garantileri.
  • LiveData verilerinin tekilleştirilmesiyle ilgili olası sorunu dahili olarak düzeltin.

API Değişiklikleri

  • Artık WorkManager.Configuration öğesinin parçası olarak bir WorkerFactory belirterek çalışma zamanında kendi Worker örneklerinizi oluşturabilirsiniz. Yedek fabrikası DefaultWorkerFactory olarak ayarlanmıştır. Bu değer, WorkManager'ın önceki sürümlerinin davranışıyla aynıdır.
    • Worker ve NonBlockingWorker için varsayılan oluşturucular kullanımdan kaldırılmış olarak işaretlendi. Lütfen yeni oluşturucuyu (Worker(Context, WorkerParameters)) kullanın ve super(Context, WorkerParameters) yöntemini çağırın. WorkManager'ın gelecekteki sürümleri, varsayılan oluşturucuyu kaldırır.
  • Yeni ListenableFuture yapısını şirket içinde kullanmaya başladık (Guava bağımlılığı yoktur). Gelecek sürümlerde, ListenableFutures'ı API için kullanıma sunacağız. Bu değişiklik, NonBlockingWorker ürününün gizlenmesini destekleyecek.
  • TestDriver.setInitialDelayMet(UUID) ve TestDriver.setPeriodDelayMet(UUID) aracılığıyla TestDriver içinde zamanlı çalışmayı tetikleme özelliği ekleyin. b/113360060

Zarar Veren Değişiklikler

  • Varsayılan Worker ve NonBlockingWorker kurucuları kullanımdan kaldırıldı. Lütfen en kısa sürede yeni oluşturucuya geçiş yapın. Gelecekteki sürümler, varsayılan oluşturucuyu kaldıracak.

27 Ağustos 2018

WorkManager

WorkManager 1.0.0-alpha08, hata düzeltmeleriyle yayınlandı.

Hata Düzeltmeleri

  • Açıkça işaretlenmiş WorkManager bileşenleri, doğrudan başlatma sırasında tetiklenmemeleri için "doğrudan başlatmaya duyarsız" olarak etiketlenmiştir. Gelecekte, WorkManager'ın doğrudan önyüklemeye duyarlı bir sürümünü sağlayacağız. b/112665532
  • Yeniden denenen çalışmanın çalışmamasına neden olan bir sorun düzeltildi. b/112604021
  • Periyodik çalışmaların tekrar tekrar yürütülmemesi düzeltildi (yukarıdaki sorunla ilgili). b/112859683
  • Uygulama işlemi devam ederken uygulanan geri yükleme politikaları dikkate alınır.
  • Data politikasında, sınırın 10 KB olduğunu belirten istisna mesajları düzeltildi.
  • JobScheduler işleminin tamamlanmasındaki bir gecikmeyi hesaba katmak için Configuration.setMaxSchedulerLimit(int) olan maksimum değer 50'ye düşürüldü. b/112817355

16 Ağustos 2018

WorkManager

WorkManager 1.0.0-alpha07, hata düzeltmeleri ve küçük API değişiklikleriyle yayınlandı.

Hata Düzeltmeleri

  • Sınırsız sayıda sonuç döndürebilecek negatif sınırlara sahip potansiyel bir SQL sorgusu düzeltildi.
  • Yürütülmesi tamamlanmış çalışmalar artık diğer Planlayıcılardaki bu çalışmanın bekleyen tüm kopyalarını doğru şekilde iptal etmektedir. Bu durum, JobScheduler iş sınırının aşılmasına neden oldu. b/111569265
  • ConstraintTracker öğesinde bir ConcurrentModificationException düzeltildi. b/112272753
  • Data.getBooleanArray(String) ve Data.getIntArray(String) döndürme türü ek açıklamaları @NonNull yerine @Nullable olarak değiştirildi. b/112275229

API Değişiklikleri

  • Worker artık NonBlockingWorker adlı yeni bir sınıfın kapsamını genişletiyor. Bu durum mevcut kullanımı etkilemez. Gelecekte NonBlockingWorker, özel ileti dizisi çözümleri için tam olarak desteklenen bir varlık haline gelecek.
  • Data.getBooleanArray(String) ve Data.getIntArray(String) döndürme türü ek açıklamaları @NonNull yerine @Nullable olarak değiştirildi. b/112275229
  • Kotlin uzantıları: Map.toWorkData() desteği sonlandırıldı ve mevcut API'lerle daha tutarlı olması için üst düzey workDataOf(vararg Pair<String, Any?>) eklendi.

10 Ağustos 2018

1.0.0-alpha05 adlı gezinme çubuğu, hata düzeltmeleriyle yayınlandı.

Hata Düzeltmeleri

  • Yanlış arka yığın davranışına neden olan hatayı düzeltin. b/111907708
  • Oluşturulan Arg sınıflarından equals() tanesinde bulunan hatayı düzeltin. b/111450897
  • Güvenli Aramalar'da bir derleme hatasını düzeltin. b/109409713
  • Kaynak tanımlayıcılardan Java adlarına dönüştürme işlemini b/111602491 düzeltin
  • Safe Args eklentisinde null değer sorunuyla ilgili hata mesajları düzeltildi.
  • Eksik null değer ek açıklamalarını ekleyin.

6 Ağustos 2018

Yaşam döngüsü, Oda ve Sayfalama sürüm (2.0.0-rc01) AndroidX sürümleri. 2.0.0-beta01 ile ilgili hiçbir yapı değişmedi.

1 Ağustos 2018

WorkManager

WorkManager 1.0.0-alpha06, hata düzeltmeleriyle yayınlandı.

Hata Düzeltmeleri

  • İş planlanırken veritabanı kilidi kullanılmasını önleyin. b/111801342
  • Doz modundayken PeriodicWork uygulamasının planlanan şekilde çalışmamasına neden olan bir hatayı düzeltin. b/111469837
  • WorkManager oyununun kilitlenmesine neden olan kısıtlamaları takip ederken yarış durumunu düzeltin. googlecodelabs/android-workmanager/issues/56
  • WorkRequest.Builder#build() kullanırken benzersiz WorkRequest'ler oluşturun. b/111408337
  • RescheduleReceiver kullanımını yalnızca buna ihtiyaç duyan WorkRequest olduğunda etkinleştirin. b/111765853

24 Temmuz 2018

WorkManager

Önemli hata düzeltmeleri ve günlüğe kaydetme değişiklikleri içeren WorkManager 1.0.0-alpha05 yayınlandı.

API Değişiklikleri

  • WorkManager.getInstance() için ek açıklama artık @Nullable yerine @NonNull olarak eklendi. Bunun yerine, manuel başlatmada tekil değer düzgün bir şekilde başlatılmazsa yöntem bir IllegalStateException hatası verir. Bu, çok önemli bir API değişikliği.
  • WorkManager ayrıntı düzeyini kontrol edebilen yeni bir API (Configuration.Builder.setMinimumLoggingLevel(int)) eklendi. Varsayılan olarak, WorkManager Log.INFO ve üstünü günlüğe kaydeder.
  • Data.getString() imzası, artık varsayılan değer kullanmayacak şekilde değiştirildi (dolaylı olarak null). Bu, kesintiye uğratan bir API değişikliğidir.
  • Yalnızca dahili kullanım için gereken bazı yöntemler @hide olarak işaretlendi. Constraints oluşturucusu, Data.toByteArray() ve Data.fromByteArray(byte[]) buna dahildir. Bu, olumsuz bir API değişikliğidir.

Hata Düzeltmeleri

  • WorkManager, bilinen otomatik yedekleme durumları sırasında artık iş yürütmez. Bu durum, kilitlenmeye yol açmış olabilir. b/110564377
  • JobScheduler kullanılırken PeriodicWorkRequest öğelerinin çift planlama sağlaması düzeltildi. b/110798652
  • Cihaz dozajından sonra PeriodicWorkRequest öğelerinin doğru şekilde çalışmamasıyla ilgili sorun düzeltildi. b/111469837
  • Firebase JobDispatcher kullanılırken yaşanan başlangıç gecikmeleriyle ilgili bir sorun düzeltildi. b/111141023
  • Bazı olası yarış koşulları ve zamanlama sorunları düzeltildi.
  • Artık ihtiyaç duyulmayan BroadcastReceiver'ler doğru şekilde serbest bırakıldı.
  • Uygulamalar zorla kapatıldıktan sonra yeniden başlatıldığında yeniden planlama performansı optimize edildi.
  • Belirtilen WorkRequest öğesinin sıraya alınmasından önce veya sonra TestScheduler.setAllConstraintsMet(UUID) çağrılmasına izin verilir. b/111238024

Zarar Veren Değişiklikler

  • WorkManager.getInstance() için ek açıklama artık @Nullable yerine @NonNull olarak eklendi.
  • Data.getString() imzası, artık varsayılan değer kullanmayacak şekilde değiştirildi (dolaylı olarak null).
  • Yalnızca dahili kullanım için gereken bazı yöntemler @hide olarak işaretlendi. Constraints oluşturucusu, Data.toByteArray() ve Data.fromByteArray(byte[]) buna dahildir.

19 Temmuz 2018

1.0.0-alpha04 gezinmesi ve ilişkili Safe Args gradle eklentisinde bir dizi API değişikliği, davranış değişikliği ve hata düzeltmesi bulunur.

API / Davranış Değişiklikleri

  • NavHostFragment, geçerli Fragment öğesini her zaman birincil gezinme parçası olarak ayarlayarak dış NavController b/111345778 açılmadan önce alt parça yöneticilerinin başlatılmasını sağlar.

Güvenli Arg'lar

  • Kusursuz Değişiklik: app:type, ConstraintLayout 2.0.0-alpha1 b/111110548 gibi diğer kitaplıklarla çakışmaları önlemek için app:argType olarak değiştirildi
  • Güvenli Aramalar'dan gelen hata mesajları artık tıklanabilir b/111534438
  • Args sınıfları artık NonNull özelliklerinin aslında null b/111451769 olmadığını doğruluyor
  • Nav Directions ve Arg oluşturulan sınıflara NonNull ek açıklamaları eklendi b/111455455 b/111455456

Hata Düzeltmeleri

  • Bir parça hedefine derin bağlantı verildikten sonra sistem geri düğmesiyle ilgili bir sorun düzeltildi b/111515685

12 Temmuz 2018

1.0.0-alpha03 gezinmesi ve ilişkili Safe Args gradle eklentisinde bir dizi API değişikliği, davranış değişikliği ve hata düzeltmesi bulunur.

API / Davranış Değişiklikleri

  • Araç Çubuğu için NavigationUI.setupWithNavController yöntemi eklendi b/109868820
  • CollapsingToolbarLayout için NavigationUI.setupWithNavController yöntemi eklendi b/110887183
  • popBackStack() artık arka yığın boş olduğunda veya belirtilen hedef kimliği arka yığında olmadığında b/110893637 false döndürüyor
  • FragmentNavigator, FragmentManager durumu kaydettikten sonra "onSaveInstanceState"ten sonra bu işlemi gerçekleştiremiyor" istisnalarını atlayarak artık gezinme işlemlerini yok sayıyor b/110987825

Güvenli Arg'lar

  • Köklü Değişiklik: İşlemdeki ve bağımsız değişken adları, alfasayısal olmayan karakterlerin yerini ilgili NavDirections yöntem adlarında deve büyük/küçük harf kullanımına geçirecektir
    • Örneğin DemoController.index, setDemoControllerIndex b/79995048 olur
    • Örneğin action_show_settings, actionShowSettings b/79642240 olur
  • Kırıcı Değişiklik: Bağımsız değişkenler artık varsayılan olarak boş olmayan kabul edilir. Dize ve ayrıştırılabilir bağımsız değişkenlerde boş değerlere izin vermek için app:nullable="true" b/79642307 ekleyin
  • Artık app:type="long" işlevini, defaultValues değeriyle "123L" b/79563966 biçiminde kullanabilirsiniz.
  • app:type için tam nitelikli bir sınıf adı kullanılarak ayrıştırılabilir bağımsız değişkenler artık desteklenmektedir. Yalnızca "@null" b/79563966 varsayılan değeri desteklenir.
  • Args sınıfları artık equals() ve hashCode() b/79642246 değerlerini uyguluyor
  • Safe Args eklentisi artık b/80036553 kitaplık projelerine uygulanabilir
  • Safe Args eklentisi artık b/110011752 özellik projelerine uygulanabilir

Hata Düzeltmeleri

  • Parça yaşam döngüsü yöntemleri sırasında gezinirken karşılaşılan sorunlar b/109916080
  • İç içe yerleştirilmiş grafiklerde birden fazla kez gezinirken karşılaşılan sorunlar düzeltildi b/110178671
  • setPopUpTo b/109909461 grafiğindeki ilk hedefle kullanılırken karşılaşılan sorunlar düzeltildi
  • Tüm app:defaultValue değerlerinin b/110710788 Dize olarak aktarılmasıyla ilgili sorun düzeltildi.
  • Android Gradle Eklentisi 3.2 Beta 01 ile birlikte sunulan aapt2 artık Navigasyon XML dosyalarındaki her android:name özelliği için saklama kuralları ekliyor b/79874119
  • Varsayılan FragmentNavigator b/110900142 değiştirilirken bellek sızıntısı düzeltildi

2 Temmuz 2018

Yaşam döngüsü, Oda ve Sayfalama sürüm (2.0.0-beta01) AndroidX sürümleri.

Yaşam döngüsü

Hata Düzeltmeleri

  • LifecycleObserver koruma kuralını alt arayüzleri değil, yalnızca uygulamaları içerecek şekilde düzeltti b/71389427
  • Kod karartmaya ve daraltmaya izin veren ViewModel koruma kuralları düzeltildi

Room

API / Davranış Değişiklikleri

  • Sorguların çalıştırılacağı yerlerin özelleştirilmesine olanak tanımak için RoomDatabase.Builder.setQueryExecutor() eklendi
  • RxJava2 Observable desteği eklendi
  • Oluşturulan DAO ve veritabanı uygulamaları artık nihai

Hata Düzeltmeleri

  • "Alan için alıcı bulunamadı" hatasında sınıf/alan adını belirtin b/73334503
  • b/110197391 numaralı Odanın eski sürümleriyle RoomOpenHelper geriye dönük uyumluluk sorunu düzeltildi

Sayfalama

Hata Düzeltmeleri

  • Bazı baştaki durumlarda kaybolan içerik düzeltildi (yer tutucular devre dışı, PositionalDataSource) b/80149146
  • (1.0.1 ürününde zaten yayınlandı) PagedListAdapter ve AsyncPagedListDiffer öğelerinin taşıma etkinliklerine sinyal gönderememesine neden olan kilitlenmeler düzeltildi. b/110711937

26 Haziran 2018

Sayfalama

1.0.1 sayfası, runtime içinde tek bir hata düzeltmesiyle birlikte yayınlandı. Kararlılık için 1.0.1 kullanmanızı önemle tavsiye ederiz. RxJava2 1.0.1 sayfalama da yayınlanmıştır ve 1.0.0-rc1 ile aynıdır.

Hata Düzeltmeleri

  • PagedListAdapter ve AsyncPagedListDiffer özelliklerinin taşıma etkinliklerine sinyal gönderememesine neden olan kilitlenmeler düzeltildi. b/110711937

WorkManager

1.0.0-alpha04 adlı WorkManager serbest bırakıldı.

Hata Düzeltmeleri

  • AlarmManager tabanlı uygulama kullanılırken PeriodicWorkRequest işlemleri artık doğru şekilde yeniden planlanıyor.

  • Zorla durdurma veya yeniden başlatma sonrasında tüm çalışanların yeniden planlaması sırasında ortaya çıkabilecek ANR sorunu düzeltildi. b/110507716

  • Çeşitli WorkManager API'lerine null değer ek açıklamaları eklendi. b/110344065

  • Çalışan yürütme sırasında oluşan yakalanmamış istisnaları günlüğe kaydedin. b/109900862

  • WorkManager'ın eski bir sürümüne geri dönmeye karar vermeniz durumunda yıkıcı veritabanı taşıma işlemlerine izin verilir. b/74633270

  • Kopya örtülü etiketler oluşturulurken yaşanan taşıma kilitlenmesi düzeltildi. Bu, yalnızca aynı örtülü etiket biçimini kendiniz kullanmanız durumunda ortaya çıkan çok nadir görülen bir sorundur.

19 Haziran 2018

Room

1.1.1 adlı odanın rezervasyonu iptal edildi. Bu sürüm, 1.1.1-rc1 Odası ile aynı.

WorkManager

1.0.0-alpha03 adlı WorkManager serbest bırakıldı.

Hata Düzeltmeleri

  • AlarmManager tabanlı uygulamadaki bir yarış durumu düzeltildi. b/80346526.

  • Cihaz yeniden başlatıldıktan sonra JobScheduler kullanıldığında yinelenen işler düzeltildi.

  • İçerik URI tetikleyicilerine sahip işler artık yeniden başlatmalarda kullanılmaya devam ediyor. b/80234744

  • Belge güncellemeleri. b/109827628, b/109758949, b/80230748

  • WorkRequest yeniden sıraya alınırken yaşanan kilitlenme düzeltildi. b/109572353.

  • work-runtime-ktx bağımlılığı kullanılırken Kotlin derleyici uyarıları düzeltildi.

  • WorkManager artık Room 1.1.1-rc1 sürümünü kullanıyor.

API Değişiklikleri

  • WorkContinuation.getStatuses() uygulamasının eşzamanlı sürümü olan getStatusesSync() eklendi.

  • Worker, kullanıcı tarafından başlatılan iptal ile işletim sistemi tarafından istenen geçici durdurma arasında ayrım yapabilir. Worker.isStopped(), herhangi bir durdurma isteğinde bulunursa true değerini döndürür. Worker.isCancelled(), iş açık bir şekilde iptal edildiğinde true değerini döndürür. b/79632247

  • API 28'de JobParameters#getNetwork() için destek ekleyin. Bu bilgi, Worker.getNetwork() üzerinden açığa çıktı.

  • JobScheduler veya AlarmManager adreslerine kaç iş gönderilebileceğini zorunlu kılabilmeniz için Configuration.Builder.setMaxSchedulerLimit(int maxSchedulerLimit) eklendi. Bu işlem, WorkManager ürününün, uygun JobScheduler yuvalarınızın tamamını kullanmasını engellemeye yardımcı olur.

  • WorkManager tarafından kullanılabilecek bir dizi JobScheduler iş kimliğinin tanımlanmasına yardımcı olan Configuration.setJobSchedulerJobIdRange(int minJobSchedulerId, int maxJobSchedulerId) eklendi. b/79996760

  • Worker.getRunAttemptCount(), belirli bir Worker için mevcut çalıştırma sayısını döndürür. b/79716516

  • WorkManager.enqueueUniquePeriodicWork(String uniqueWorkName, ExistingPeriodicWorkPolicy existingPeriodicWorkPolicy, PeriodicWorkRequest periodicWork), benzersiz PeriodicWorkRequest'leri sıraya almanıza olanak tanır. b/79600647

  • WorkManager.cancelAllWork(), tüm Worker öğelerini iptal eder. WorkManager öğesine bağlı kitaplıklar, dahili durumu ek olarak temizlemek için WorkManager.getLastCancelAllTimeMillis() kullanarak bu yöntemin en son ne zaman çağrıldığını sorgulayabilir.

  • Tamamlanan işleri dahili veritabanından kaldırmak için WorkManager.pruneWork() eklendi. b/79950952, b/109710758

Davranış Değişiklikleri

  • Tüm WorkRequest öğeleri için örtülü bir etiket eklendi. Bu, Worker için tam nitelikli sınıf adıdır. Bu, tag öğeleri olmadan veya id kullanılamadığında WorkRequest öğelerinin kaldırılmasına olanak tanır. b/109572351

Zarar Veren Değişiklikler

  • Worker.WorkerResult adlı dosya Worker.Result olarak yeniden adlandırıldı.

  • Worker açıkça iptal edildiğinde Worker.onStopped artık true olarak ayarlanan ek bir isCancelled parametresine sahip.

7 Haziran 2018

1.0.0-alpha02 gezinme paneli serbest bırakıldı.

Davranış Değişiklikleri

  • FragmentNavigator artık setReorderingAllowed(true) kullanıyor. b/109826220

  • Gezinme artık derin bağlantı URL'lerinden ayrıştırılan URLDecodes bağımsız değişkenlerini oluşturur. b/79982454

Hata Düzeltmeleri

  • Parça yaşam döngüsü yöntemlerinden gidiş yolunu çağırırken karşılaşılan IllegalStateException sorunu düzeltildi. b/79632233

  • Gezinme, animasyonlar kullanılırken oluşan titremeyi düzeltmek için artık Destek Kitaplığı 27.1.1'i kullanıyor. b/80160903

  • Alt parça olarak defaultNavHost="true" kullanılırken karşılaşılan IllegalArgumentException düzeltildi. b/79656847

  • NavDeepLinkBuilder kullanılırken bir StackOverflowError düzeltildi. b/109653065

  • İç içe yerleştirilmiş bir grafiğe dönerken karşılaşılan IllegalArgumentException sorunu düzeltildi. b/80453447

  • launchSingleTop kullanılırken çakışan Parçalarla ilgili sorun giderildi. b/79407969

  • Gezinme artık iç içe yerleştirilmiş grafikler için doğru sentetik arka yığını derlemektedir. b/79734195

  • NavigationUI artık iç içe yerleştirilmiş bir grafiği MenuItem olarak kullanırken doğru öğeyi vurgulayacak. b/109675998

API Değişiklikleri

  • NavOptions kapsamındaki işlemler ve ilişkili API için clearTask özelliği kullanımdan kaldırıldı. b/80338878

  • NavOptions kapsamındaki işlemler ve ilişkili API için launchDocument özelliği kullanımdan kaldırıldı. b/109806636

24 Mayıs 2018

1.0.0-alpha02 adlı WorkManager serbest bırakıldı.

WorkManager

Hata Düzeltmeleri

  • State.isFinished() alanındaki bir NullPointerException düzeltildi. b/79550068

  • Worker toplantısının Application.onCreate() tarihinde yeniden planlanmasına neden olan bir sorun düzeltildi. b/79660657

  • İşletim sisteminin izin verdiğinden daha fazla çalışma programlayabilmenize neden olan bir sorun düzeltildi. b/79497378

  • Worker ile ilişkili uyanık kalma kilitlerinin temizlemesi, arka plan ileti dizisine taşındı.

  • Beklemedeki tüm işler tamamlandığında AlarmManager uygulaması artık düzgün şekilde temizleniyor.

  • İngilizce olmayan yerel ayarları etkileyen SQL sorgularını temizleme sorunu düzeltildi. b/80065360

  • Data grubundaki float için destek eklendi. b/79443878

  • Data.Builder.putAll() artık Builder öğesinin bir örneğini döndürüyor. b/79699162

  • Dokümanlarda daha fazla javadoc ve düzeltmeler. b/79691663

API Değişiklikleri

  • Worker kullanıcıları durdurulmaya tepki verebilir. Worker.isStopped(), bir Worker durdurulup durdurulmadığını kontrol etmek için kullanılabilir. Worker.onStopped(), hafif temizleme işlemleri gerçekleştirmek için kullanılabilir.

  • Worker.getTags() API, Worker ile ilişkili etiketlerin Set kadarını döndürür.

  • Süre ve TimeUnit saniyelerini birlikte kullanan API'ler için javax.time.Duration aşırı yüklemeleri eklendi. Bu koruma @RequiresApi(26) tarafından yönetiliyor.

  • WorkManager uzantı, androidx.work.ktx paketinden androidx.work paketine taşındı. Eski uzantılar kullanımdan kaldırıldı ve gelecekteki bir sürümde kaldırılacaktır.

  • Configuration.withExecutor() desteği sonlandırıldı. Bunun yerine Configuration.setExecutor() politikasını kullanın.

16 Mayıs 2018

RxJava2 1.0.0-rc1 ve 1.1.1-rc1 adlı odanın rezervasyonu iptal edildi. Taşıma işlemlerini kullanıyorsanız 1.1.0 yerine 1.1.1-rc1 Odasını kullanmanızı önemle tavsiye ederiz.

Room

Odanın taşıma sonrası başlatma işlemini düzgün şekilde işlememesine neden olan hata düzeltildi b/79362399

Sayfalama

rxjava2 sayfası, başlangıçtaki alfa sürümünden herhangi bir değişiklik yapılmadan adayı serbest bırakacak.

8 Mayıs 2018

Sayfa 1.0, Gezinme ve WorkManager Alfaları, Oda 1.1, AndroidX

İki yeni Mimari Bileşeni olan Navigation ve WorkManager'ın alfa sürümüyle birlikte, 1.0.0 ve Oda 1.1.0 çağrıları yayınlandı.

En son sürümdeki adaylardan bu yana Sayfalama ve Oda ayarlarında değişiklik yok.

Yeni Kitaplık: Gezinme

Gezinme, uygulama içi gezinme oluşturmak için bir çerçeve sağlar. Bu ilk sürüm: 1.0.0-alpha01.

Yeni Kitaplık: WorkManager

WorkManager, garantili, kısıtlamalara duyarlı arka plan çalışmalarının planlanmasını ve yürütülmesini kolaylaştırır. Bu ilk sürüm: 1.0.0-alpha01.

AndroidX

Güncellenen paket adları, yapı adları ve diğer AndroidX kitaplıklarındaki bağımlılıklar dahil mimari bileşenleri AndroidX'in bir parçası olacak şekilde taşınıyor. Bunlar, diğer AndroidX kitaplıklarıyla birlikte kullanılmak üzere 2.0.0-alpha1 sürümü altında yayınlanır.

Kotlin Uzantıları

ViewModel, ReactiveStreams ve Sqlite'ın (eski adıyla Room'un "Database" bileşeni) tümü, AndroidX alfa sürümünün parçası olarak eklenmiş Kotlin uzantı kitaplıklarına sahiptir. Buna ek olarak, Navigation ve WorkManager'da -ktx modülleri bulunur. Bu uzantı modüllerinin her biri, bileşen ekleme bölümünde bulunabilir.

2 Mayıs 2018

  • Oda 1.1.0 Serbest Bırakma Adayı
  • 1.1.0-rc1 adlı odanın rezervasyonu iptal edildi.

Hata Düzeltmeleri

19 Nisan 2018

Sayfalandırma Sürüm Adayı

1.0.0-rc1 sayfası ve 1.1.0-beta3 numaralı oda serbest bırakıldı.

Sayfalama

1.0.0 Çağrısı için planlanmış başka bilinen bir sorun veya yeni özellik yoktur. 1.0.0-rc1 özelliğini kullanmak için lütfen projelerinizi yükseltin ve sağlam bir 1.0.0 gönderebilmemiz için savaş testi yapmamıza yardımcı olun.

Bu sürüm, 1.0.0-beta1 sürümüyle aynı olduğundan bu sürümde değişiklik yok.

Room

Hata Düzeltmeleri

  • Bir Kotlin POJO, Java b/78199923'te tanımlanan bir ilişki varlığına referans verdiğinde derleme hatasını düzeltme

5 Nisan 2018

1.1.0-beta2 odası, Çağrı 1.0.0-beta1 ve Paging RxJava 1.0.0-alpha1 yayınlandı.

Sayfa, adayı bırakmak için çalışmaya devam etmeden önce kısa bir süreliğine beta sürümünde olacak. Paging 1.0 için başka API değişikliği planlamıyoruz ve API değişiklikleri için çıta çok yüksek.

Sayfalama için Alfa RxJava2 desteği, ayrı bir isteğe bağlı modül (android.arch.paging:rxjava2:1.0.0-alpha1) olarak yayınlanmıştır ve sabitlenene kadar geçici olarak ayrı bir sürüm sunulacaktır.

Bu yeni kitaplık, LivePagedListBuilder yerine bir RxJava2 alternatifi sağlar. Bu alternatif, Executor yerine Scheduler kullanarak Observable ve Flowable oluşturabilir:

Kotlin

val pagedItems = RxPagedListBuilder(myDataSource, /* page size */ 50)
        .setFetchScheduler(myNetworkScheduler)
        .buildObservable()

Java

Observable<PagedList<Item>> pagedItems =
        RxPagedListBuilder(myDataSource, /* page size */ 50)
                .setFetchScheduler(myNetworkScheduler)
                .buildObservable();

Sayfalama

Yeni Özellikler

  • RxPagedListBuilder, yeni android.arch.paging:rxjava2 yapısı aracılığıyla eklendi.

API Değişiklikleri

  • Yürütücülerin oluşturuculardaki rolünü netleştirmek için API değişiklikleri:

    • setBackgroundThreadExecutor() adlı dosya setFetchExecutor() olarak yeniden adlandırıldı (PagedList.Builder ve LivePagedListBuilder içinde)

    • setMainThreadExecutor() adlı dosya setNotifyExecutor() olarak yeniden adlandırıldı (PagedList.Builder içinde).

  • PagedList.mCallbacks üyenin gizli olması düzeltildi.

Hata Düzeltmeleri

  • LivePagedListBuilder, ilk PagedList yükünü Arch Bileşenleri IO iş parçacığı havuzu yerine belirtilen yürütücüde tetikler.

  • Dahili DataSource sarmalayıcılarındaki geçersiz kılma davranışı düzeltildi (DataSource.map ve yer tutucu devre dışı bırakılan PositionalDataSource yüklemesi için kullanılır) b/77237534

Room

Hata Düzeltmeleri

  • Room'un Rx Single ve Maybe uygulamalarında, sorguyu önceden geri dönüştürmesine neden olan ve döndürülen Single veya Maybe verilerine 1'den fazla gözlemci eklerseniz sorunlara neden olan kritik bir hata düzeltildi. b/76031240

  • RoomDatabase.clearAllTables, bir işlem içinde çağrılırsa veritabanını VACUUM yapmaz. b/77235565

21 Mart 2018

1.1.0-beta1 adlı oda, Sayfalama 1.0.0-alpha7 ve Yaşam Döngüleri 1.1.1 serbest bırakıldı.

Room

API Değişiklikleri

Hata Düzeltmeleri

  • RoomDatabase.clearAllTables artık bir WAL kontrol noktası ayarlayarak ve veritabanını VACUUMleştirerek işletim sistemine alanı geri döndürmeye çalışıyor.

  • @RawQuery, Embedded alanları veya Relation'leri aracılığıyla bir veya daha fazla varlığa referans verdiği sürece observedEntities mülkü için her Pojo'yu artık kabul ediyor. b/74041772

  • Sayfalama: Odanın DataSource uygulaması artık çoklu tablo bağımlılıklarını (ilişkiler ve birleştirmeler gibi) doğru şekilde işliyor. Daha önce bunlar yeni sonuçları tetikleyemiyor veya derlenemiyordu. b/74128314

Yaşam döngüleri

Tek bir küçük değişiklik var: android.arch.core.util.Function, arch:runtime değerinden arch:common değerine taşındı. Bu, çalışma zamanı bağımlılığı olmadan kullanılmasını sağlar (ör. aşağıdaki paging:common'de).

lifecycle:common, lifecycle:runtime ürününün bir bağımlılığıdır. Bu nedenle bu değişiklik lifecycle:runtime üzerinde doğrudan etkisi yoktur. Sayfalama'nın yaptığı gibi yalnızca doğrudan lifecycle:common bileşenine bağlı modüller etkilenir.

Sayfalama

1.0.0-alpha7 sayfası, 1.1.1 Yaşam Döngüleri ile birlikte yayınlandı. Alfa7 sayfalandırması, yukarıda belirtilen Function sınıfının taşınmasına bağlı olduğundan lifecycle:runtime bağımlılığınızı android.arch.lifecycle:runtime:1.1.1 olarak güncellemeniz gerekir.

alpha7 sayfalandırmasının, Sayfalama isabetleri beta aşamasından önce son sürüm olarak sunulması planlanmaktadır.

API Değişiklikleri

  • DataSource.LoadParams nesnelerinin artık ortak kurucusu var ve DataSource.LoadCallback nesne soyut özellikte. Bu, DataSource öğesinin sarmalanmasını veya DataSource öğesinin örnek geri çağırmayla doğrudan test edilmesini sağlar. b/72600421
  • DataSource ve DataSource.Factory Harita Çalışanları
    • map(Function<IN,OUT>), bir DataSource tarafından yüklenen sonuçları dönüştürmenize, sarmanıza veya süslemenize olanak tanır.
    • mapByPage(<List<IN>,List<OUT>>), toplu işlem için de aynısını sağlar (ör. SQL'den yüklenen öğelerin ek olarak ayrı bir veritabanını sorgulaması gerekiyorsa bu işlem toplu olarak yapılabilir.)
  • Kolaylık yöntemi olarak PagedList#getDataSource() eklendi b/72611341
  • recyclerview.extensions paketi ve LivePagedListProvider paketinin kalanları da dahil olmak üzere desteği sonlandırılmış tüm sınıflar API'den kaldırıldı.
  • Harita işlevselliğinin etkinleştirilmesi için DataSource.Factory, arayüzden soyut sınıf olarak değiştirildi.

Hata Düzeltmeleri

  • Oluşturucular nihai olarak değiştirildi. b/70848565
  • Oda DataSource uygulaması, birden fazla tablo içeren sorguları işlemek için artık düzeltildi. Bu düzeltme Oda 1.1.0-beta1 içinde yer almaktadır (yukarıya bakın).
  • Yer tutucular etkinse ve toplam boyut sayfa boyutunun tam katıysa PositionalDataSource için BoundaryCallback.onItemAtEndLoaded yönteminin çağrılmamasına neden olan hata düzeltildi.

2 Mart 2018

1.1.0-alpha3 adlı odanın rezervasyonu iptal edildi. Bu, 1.1.0 Odası için planlanan son alfa sürümüdür.

API Değişiklikleri

  • InvalidationTracker'ın addObserver ve removeObserver yöntemleri artık eşzamanlı olduğundan kullanıcı dışı bir iş parçacığında çağrılmaları gerekir. Bu, tablolar gözlemlenirken bazı yarış koşullarını engeller.

  • RoomDatabase sınıfında, tüm tablo içeriklerini kesecek yeni bir clearAllTables() yöntemi bulunmaktadır. b/63807999

  • SupportSQLiteQuery artık sorgu parametrelerinin sayısını döndüren bir getArgCount() yöntemine sahip. b/67038952

Hata Düzeltmeleri

  • @RawQuery artık Sayfalama sorguları için düzgün bir şekilde desteklenmektedir. b/72600425

  • 2 veya daha fazla Dao arayüzü aynı pakette yer alan iç sınıflar olduğunda ve aynı ada sahip olduğunda oda, ad çakışmalarını önlemek için oluşturulmuş Dao sınıflarını artık düzgün bir şekilde adlandırıyor. b/73536380

  • Pojo öğelerindeki genel alan türleri, genişletme sınıfının üyesi olarak düzgün bir şekilde ayrıştırılır. b/73534868

  • Dao arayüzlerinde bağımlılık yapılarından devralınan sorgu parametreleri artık düzgün bir şekilde ayrıştırılıyor. b/68118746

  • @Relation sn. için oluşturulan sorgularda artık alan adlarında düzgün bir şekilde çıkış yapılmaktadır. b/70925483

27 Şubat 2018

Destek Kitaplığı 27.1.0 sürümüyle birlikte 1.0.0-alpha6 sayfası da yayınlandı. ListAdapter ve ilgili birkaç sınıf, belirli sınıfların işlevini daha anlaşılır hale getirmek için birkaç yeniden adlandırmayla birlikte Sayfalama Kitaplığı'ndan doğrudan Recyclerview'a taşındı. Sayfalandırmanın bu alfa sürümü, büyük olasılıkla API'de önemli değişikliklere sahip olan son sürümdür.

API Değişiklikleri

  • recyclerview-v7'ye taşınan sınıflar:
    • ListAdapter
  • Sınıflar yeniden adlandırıldı ve recyclerview-v7'ye taşındı:
    • ListAdapterHelper -> AsyncListDiffer
    • ListAdapterConfig -> AsyncDifferConfig
    • DiffCallback -> DiffUtil.ItemCallback
  • Sınıflar paging-runtime içinde yeniden adlandırıldı:
    • PagedListAdapterHelper -> AsyncPagedListDiffer

Taşınan sınıflar, Çağrı Kitaplığı'ndan bağımsız olarak RecyclerView ile birlikte faydalı oldu. Yani, Sayfalama alfa sürümüne bağlı olmadan kullanılabilirler. Ancak, Sayfalama kullanan uygulamaların aynı anda Alfa 6 ve Destek Kitaplığı 27.1.0 sürümüne geçmesi gerekir.

** Sayfa Alfa 6 için taşıma rehberi: **

  • Sayfalandırma ve geri dönüşüm görünümü bağımlılıklarını android.arch.paging:runtime:1.0.0-alpha6 ve com.android.support:recyclerview-v7:27.1.0 olarak güncelleyin
    • ListAdapter, Sayfalama'dan RecyclerView'a taşındığı için bunların aynı anda yapılması gerekir.
  • ListAdapterHelper referanslarını AsyncListDiffer olarak güncelleyin
    • Daha açık olan getCurrentList().getItem(index) ve getCurrentList().size() arama kalıbının lehine getItem(index)/getItemCount() kaldırıldı.
  • Tüm ListAdapterConfig referanslarını AsyncDifferConfig olarak güncelleyin
  • Tüm DiffCallback referanslarını DiffUtil.IttemCallback olarak güncelleyin
  • Tüm PagedListAdapterHelper referanslarını AsyncPagedListDiffer olarak güncelleyin
  • setList() referanslarını submitList() olarak güncelleyin
    • liste farklarının eşzamansız yapısını netleştirmek için yeniden adlandırıldı

Hata Düzeltmeleri

  • Yer tutucular devre dışı bırakıldığında ilk yüke yanlış başlangıç konumunun geçirilmesi sorunu düzeltildi. b/73513780

15 Şubat 2018

1.1.0-alpha2 adlı odanın rezervasyonu iptal edildi.

Yeni Özellikler

  • Room artık veritabanının önceden yazma günlük kaydı modunda açılmasını destekliyor. Bu modda, yazma işlemleriniz artık okuma sorgularınızı engellemez. Birden fazla bağlantı nedeniyle daha fazla bellek kullansa da bu mod genellikle daha hızlıdır. Varsayılan olarak Oda, API 16 veya daha büyük bir cihazsa ve düşük belleğe sahip bir cihaz değilse WAL'yi kullanır. Bu davranışı RoomDatabase.Builder üzerindeki setJournalMode() yöntemini kullanarak kontrol edebilirsiniz. b/67757002

  • Guava Desteği: Oda artık DAO sorgularında Guava Optional<T> veya ListenableFuture<T> döndürülmesini destekliyor. ListenableFuture<T> özelliğini kullanmak için Odadan guava yapıyı içe aktarmanız gerekir (android.arch.persistence.room:guava:1.1.0-alpha2).

  • Oda artık DAO sorgudan java.util.Optional<T> döndürülmesini destekliyor.

  • Varsayılan olarak uygulanan arayüz yöntemleri artık DAO sınıflarındaki @Transaction yöntemlerinde desteklenmektedir. Bu işlem hem Java 8 hem de Kotlin için geçerlidir. b/72416735

Hata Düzeltmeleri

  • @Relation içeren oluşturucular, kullanılabilecek başka bir oluşturucu varsa derleme hatasına neden olmaz. b/72884434

  • @Query yöntemlerinde ' ile çıkış yapılan tablo adları, geçersiz kılma izleyicisi için artık düzgün bir şekilde çıkış yapılmaktadır. b/72366965

  • Room, ek açıklama işleme sırasında sınıf yapısını okumak için artık Kotlin @Metadata ek açıklamalarını kullanıyor. Yani bir pojo bağımlılıktan devralınsa bile kurucu parametre adları düzgün şekilde okunabilir. b/67181813

  • Eski sürüme geçiş yollarını bulmayla ilgili bir sorun düzeltildi. b/72153525

  • Mevcut bir veritabanından Odaya taşıma sırasında varsayılan olmayan sütun türleri artık düzgün bir şekilde işleniyor. b/71953987

  • Oda artık Kotlin sınıflarında kalıcı boolean? alanlarını düzgün şekilde işliyor. b/72786402

22 Ocak 2018

1.1.0 Yaşam Döngüleri, 1.1.0-alpha1 Oda ve 1.0.0-alpha5 Sayfalama serbest bırakıldı.

Yaşam Döngüsü 1.1.0

Paketleme Değişiklikleri

Yeni ve çok daha küçük bağımlılıklar kullanıma sunuldu:

  • android.arch.lifecycle:livedata:1.1.0
  • android.arch.lifecycle:viewmodel:1.1.0

API Değişiklikleri

  • Kullanımdan kaldırılan LifecycleActivity ve LifecycleFragment kaldırıldı. Lütfen FragmentActivity, AppCompatActivity kullanın veya Fragment desteği sağlayın.
  • ViewModelProviders ve ViewModelStores bölümlerine @NonNull ek açıklama eklendi
  • ViewModelProviders oluşturucu kullanımdan kaldırıldı. Lütfen statik yöntemlerini doğrudan kullanın
  • ViewModelProviders.DefaultFactory desteği sonlandırıldı - lütfen ViewModelProvider.AndroidViewModelFactory kullanın
  • ViewModel ve AndroidViewModel örnekleri oluşturmaya uygun bir statik Factory almak için statik ViewModelProvider.AndroidViewModelFactory.getInstance(Application) yöntemi eklendi.

Oda 1.1.0-alfa1

Yeni Özellikler

  • RawQuery: Bu yeni API, @Dao yöntemlerinin SQL'i bir sorgu parametresi olarak almasını sağlar b/62103290, b/71458963
  • fallBackToDestructiveMigrationsFrom: RoomDatabase.Builder hizmetindeki bu yeni API, hangi başlangıç şeması sürümlerinde yıkıcı taşıma işlemlerine izin verileceği konusunda daha ayrıntılı kontrol sağlar (fallbackToDestructiveMigration ile karşılaştırıldığında) b/64989640
  • Room artık yalnızca daha yeni Paging API'lerini (alfa-4+) destekliyor ve kullanımdan kaldırılan LivePagedListProvider için desteği bırakıyor. Yeni Oda alfa sürümünü kullanmak için alpha-4 veya daha yüksek bir sayfa numarası kullanmanız ve henüz yapmadıysanız LivePagedListProvider değerinden LivePagedListBuilder değerine geçmeniz gerekir.

Hata Düzeltmeleri

  • Kotlin Kapt türleri için iyileştirilmiş destek. b/69164099
  • Alanların sırası artık şemayı geçersiz kılmıyor. b/64290754

Sayfa 1.0.0-alfa5

Hata Düzeltmeleri

  • Yer tutucular devre dışı bırakıldığında sayfa yüklemeyi düzeltme b/70573345
  • LegalArgumentException hatası b/70360195 (ve Oda tarafı düzeltmesi) takibi için ek günlük kaydı
  • Javadoc örnek kodu düzeltmeleri: b/70411933, b/71467637

11 Aralık 2017

alpha4-1 numaralı sayfalama serbest bırakıldı. Bu, Sayfa alfa 4 için küçük bir hata düzeltme sürümüdür.

Hata Düzeltmeleri

  • Geçersiz veri kaynakları için geri çağırma parametrelerini kontrol etmeyin. b/70353706, b/70360195

7 Aralık 2017

Önemli değişiklikler ve eklemeler içeren alpha4 sayfası, çoğunlukla hedefleme ağı ve ağ + veritabanı kullanım alanları ile yayınlandı.

API Değişiklikleri

  • DataSource, doğrudan ağdan sayfa almayı kolaylaştırmak için artık eş zamansız bir API'dir:

    • Başlangıç boyutu ve veriler için tek giriş noktası
    • Geri çağırmayı tutup daha sonra göndererek ağ yeniden deneme özelliğini destekler
    • Threadsafe geri çağırmaları, kullanıcı arayüzü iş parçacığında tek bir ağ destekli PagedList oluşturmak için eşzamansız yüklemeye izin verir.
    • İlk yükleme parametrelerinde daha net hata davranışı
  • TiledDataSource, konuma dayalı dizine eklemeyi ve yer tutucular devre dışı bırakıldığında düzenlenmediğini belirtmek için PositionalDataSource olarak yeniden adlandırıldı.

  • PageKeyedDataSource, ağ sayfası yüklemelerine yerleştirilmiş sonraki/önceki jetonları desteklemek amacıyla eklenmiştir. KeyedDataSource, farkı netleştirmek için ItemKeyedDataSource olarak yeniden adlandırdı.

  • LivePagedListBuilder ve DataSource.Factory, LivePagedListProvider yerini değiştiriyor. Oluşturucu, daha fazla özelleştirme ve daha basit varsayılanlarla aynı özelliği sunar. Fabrika, DataSource oluşturma kodunun LiveData bağımsız olarak kalmasına izin verir.

  • Veritabanı ve ağ kullanım alanı için PagedList.BoundaryCallback eklendi.

  • PagedList.Builder kurucusu, artık LivePagedListBuilder ile daha benzer olan DataSource + PagedList.Config öğelerini alır ve Java dilinde elmas operatörüne veya Kotlin'de türetilmiş türlere izin verir.

  • PagedList.getConfig() eklendi ve PagedList.Config artık herkese açık üye mülklerine sahip.

  • KeyedDataSource.loadBefore() artık sonuçların tersine çevrilmesini beklemiyor.

  • PagedListAdapter.onCurrentListChanged(), PagedList görüntülenirken gösterilen güncellemeleri dinlemek için eklendi.

Hata Düzeltmeleri

  • PagedListAdapter(Yardımcı) içindeki IndexOutOfBoundsException sorunu düzeltildi b/67883658

1.0.0 - 6 Kasım 2017

Tüm ana bileşenler (Sayfalama hariç) artık 1.0.0 durumundadır. reactivestreams kitaplığında yapılan bir değişiklik hariç bu sürüm, rc1 ile tamamen aynıdır.

Hata Düzeltmeleri

Yayın Adayı - 18 Ekim 2017

Tüm önemli yapılar (Sayfalama hariç) artık 1.0.0-rc1 durumunda.

1.0.0 sürümü için planlanan başka bir bilinen sorun veya yeni özellik yoktur. Lütfen 1.0.0-rc1 kullanmak için projelerinizi yükseltin ve sağlam bir 1.0.0 gönderebilmemiz için savaş testi yapmamıza yardımcı olun.

Davranış Değişikliği

  • Bu sürümle birlikte, onSaveInstanceState çağrıldığında Lifecycle.Event#ON_STOP artık yola çıkmış durumdadır (önceden, ON_STOP dağıtılmadan sadece CREATED olarak işaretlenmişti). Bu konu hakkında daha fazla bilgiyi Yaşam Döngüleri belgelerinde bulabilirsiniz.

Hata Düzeltmeleri

  • Oda:

    • Oda artık derleme sırasında OutOfMemory sorunlarını çözen en yeni havasel yapıya bağlıdır. b/62473121
    • Query yöntemlerine artık @Transaction ile ek açıklama eklenebilir. Ayrıntılar için @Transaction referans belgelerine bakın. b/65112315
    • Odadaki StringUtil sınıfı herkese açık API'den kaldırıldı (hiçbir zaman herkese açık bir API olarak tasarlanmamıştı).
  • Yaşam döngüleri:

    • LiveData, API < 24 API'de etkinlik kısmen karşılandığında düzgün çalışır. b/65665621

    • Üst sınıflardaki OnLifecycleEvent yöntemleri artık düzgün şekilde çağrılıyor veya mümkün değilse derleme sırasında bir uyarı yazdırılıyor. b/63474615

    • Yaşam döngüsü, bellekte normalden daha uzun süre tutulursa Yaşam Döngüsü Sahibi'nin sızdırmasını önlemek için artık Yaşam Döngüsü Yaşam Döngüsü Sahibi'ne geri kazandırır (Bu, yalnızca bir önlemdir, ancak Lifecycle değerini sızdırmamaya dikkat etmelisiniz).WeakReference

9 Ekim 2017

Yaşam Döngüleri ve Oda beta 2 sürümüyle uyumlu hale getiren alpha-3 sayfası kullanıma sunuldu.

Hata Düzeltmeleri

  • İyileştirilmiş Sayfalama dokümanları.

5 Ekim 2017

Tüm önemli yapılar (Sayfalama hariç) artık beta 2 durumunda. Bu sürümde Sayfalama'nın yeni sürümü bulunmamaktadır.

Hata Düzeltmeleri

  • Yaşam döngüleri:

    • LiveDataReactiveStreams, LiveData etkin olmadığında kaynak yayıncı e-posta listesinden düzgün şekilde çıkar. b/62609183
    • Üst sınıf başka bir modülden olduğunda yaşam döngüsü etkinlikleri üst sınıflara doğru şekilde yayılır. b/63474615
    • LiveData, abonelik oluşturma sırasında abonelikten çıkan gözlemcileri gerektiği gibi işler. b/66337741
    • Java 8 Language yapıları için FullLifecycleObserver artık bağımlılık ağacında kullanılabilir. b/66525578

    • ProGuard için lütfen aşağıdaki satırları ProGuard dosyanıza ekleyin. (1.0.0 sürümü gönderildiğinde bu gerekli değildir)

      • -keep class * implements android.arch.lifecycle.GeneratedAdapter {<init>(...);}
  • Oda:

    • @Query yönteminde döndürülen Pojo, sorgu yanıtındaki sütunlarla eşleşmeyen bir @NonNull alanına sahip olduğunda oda artık derleme zamanında bir hata yazdırıyor. Alan @Nullable ise Oda yalnızca bir uyarı yazdırır. b/67115337
    • Oda, yeni işletim sistemi sürümlerinde dizinleri artık doğrulamaktadır. b/63132683
    • Bir Pojo'da birden fazla eşleşen oluşturucu varsa oda, varsayılan olarak bağımsız değişkensiz oluşturucuyu seçer. b/67353427
    • Tek sütunlu birincil anahtarlar Integer veya Long ise Nullable olabilir. b/67086876
    • Geçersiz kılma izleyicisi, test modunda tekrar girişi düzgün bir şekilde işler. b/65471397
    • Oda artık derleme sırasında sütun ve tablo adlarında geçersiz karakterler olup olmadığını kontrol ediyor (geçersiz karakterler: `, "). b/64749111

21 Eylül 2017

Bu sürümde, tüm Mimari Bileşenler modülleri en az beta 1 erişim düzeyine ulaşmıştır (alpha 2 olan yeni Sayfa Ayırma Kitaplığı hariç).

Başka API değişikliği yapmayı planlamıyoruz. Planlanmayan değişiklikler gerçekleşebilir ancak 1.0.0 kararlılığından önce herhangi bir API'nin değiştirilmesi için gereken çubuk çok yüksektir ve bu durumda gerçekleşme olasılığı düşüktür.

  • LifecycleActivity ve LifecycleFragment, 1.0.0 kararlı sürümünden önce kaldırılacak. 26.1.0 veya üzeri Destek Kitaplığı'nı kullanırken bunlara gerek yoktur.

Alfa aşamasından farklı olarak beta aşamasının çok kısa bir süre sürmesi planlanır.

Sürüm Değişiklikleri

  • Yaşam Döngüsü Uzantıları ve Oda artık beta 1
  • Sayfalama artık alpha 2
  • Yaşam Döngülerinde (çalışma zamanı, yaygın) ve Arch Core'da (yaygın) değişiklik yapılmaz. Bu yapıların ikisi de 13 Eylül'den beri 1.0.0 sürümündedir.

Yeni Yapılar

  • Yaşam döngüleri artık common-java8 adlı yeni bir yapıya sahip. Bu yapı, DefaultLifecycleObserver adlı yeni bir arayüz içerir. Bu arayüz, tüm Yaşam Döngüsü yöntemleri için varsayılan uygulamalara sahiptir. Java 8 dilini kullanıyorsanız ek açıklamalar yerine bu yapıyı tercih etmelisiniz.

    • beta1 hizmetindeki bir hata nedeniyle, yeni common-java8 yapısını kullanmak için android.arch.lifecycle:common:1.0.1 modülüne açık bir bağımlılık eklemeniz gerekiyor. Bu sorun beta2 içinde düzeltilecek.

Paketleme Değişiklikleri

  • android.arch.persistence.room.db, android.arch.persistence.db URL'sine taşındı.
  • android.arch.persistence.room.db-impl taşındı ve android.arch.persistence.db-framework olarak yeniden adlandırıldı

Bu yapıların ikisi de zaten Room'a bağımlıdır. Bu nedenle, bunları doğrudan kullanmadığınız sürece derleme dosyalarınızda herhangi bir şeyi değiştirmeniz gerekmez.

API Değişiklikleri

  • Oda:

    • @ColumnInfo ek açıklaması artık sütunda bir harmanlama ayarlamayı destekliyor. b/62007004
    • @ColumnInfo, @Embedded veya @Relation ile açıklama eklenmediği sürece transient alanları artık varsayılan olarak yoksayılır. b/62600692
    • Otomatik olarak oluşturulmadıkları sürece birincil anahtarlara @NonNull ek açıklaması eklenmelidir. b/64292391
      • Bu değişiklik, şemanın taşınmasını gerektirebilir. Bu durumun neden olduğu rahatsızlıktan dolayı özür dileriz.
    • DAO yöntemini geçersiz kılıp bunu bir işlem içinde çalıştıran yeni bir kolaylık ek açıklaması (@Transaction) eklendi.
  • SQLite Veritabanını Destekleyin:

  • Sayfalama:

    • Daha fazla örnek ve ileti dizisi ek açıklaması içeren iyileştirilmiş Sayfalama dokümanları.

Hata Düzeltmeleri

  • Oda:
    • @Query yöntemlerindeki Kotlin çok satırlı dizeleri düzgün işlenir. b/65809374
  • Sayfalama:
    • Sayfalandırma yapısı artık junit'e bağlı değil. b/65690261

1.0.0 Alfa 9-1 - 13 Eylül 2017

Bu, temel yaşam döngüsü yapılarının (çalışma zamanı, ortak) ve kemer çekirdeği (ortak) tarafından kararlı 1.0.0 sürümüne ulaştığı önemli bir sürümdür.

Bu değişiklikle birlikte, Destek Kitaplığı 26.1.0 artık bu kitaplıkları temel almaktadır. Hem AppCompatActivity hem de Support Fragment artık LifecycleOwner arayüzünü uygular.

Bu sürüm, yeni entegrasyondan yararlanmak için 26.1.0 Destek Kitaplığı'nı da temel almaktadır.

Yeni Kitaplık: Sayfalama

Bu sürüm, gerektiğinde büyük veri kümelerinin parçalar halinde bir RecyclerView'a kolayca yüklenmesini sağlayan Paging adlı yeni bir kitaplık da içerir. çağrı alpha1 olarak yayınlanır ve kendi sürüm döngüsüne sahip olur.

API Değişiklikleri

Hata Düzeltmeleri

  • Oluşturulan sınıflara artık ek açıklamanın sınıf yolunda @Generated ek açıklaması ekleniyor. b/35754819

  • MediatorLiveData'nın gözlemci karşılaştırma hatası düzeltildi. b/64413274

  • SQLite WITH sorguları artık [LiveData] ile desteklenmektedir. [ref-LiveData] b/62510164

  • 1'den fazla tablo gözlemlendiğinde InvalidationTracker'ın doğru listeyi göndermemesine neden olan hata düzeltildi. b/65099281

  • Oda'nın Windows'da farklı dosyalar oluşturmasına neden olan hata düzeltildi. b/64470691

  • Kök paketteki LifecycleObserver'lar artık desteklenmektedir. b/62310817

1.0.0 Alfa 9 - 16 Ağustos 2017

Hata düzeltmeleri

1.0.0 Alfa 8 - 1 Ağustos 2017

Davranış Değişiklikleri

  • Temel türlerden oluşan sütunlar veya NonNull ifadesiyle ek açıklamalı sütunlar için NOT NULL kısıtlaması eklendi. Bu, tablolarınızın yapısını değiştirir. Bu nedenle, zaten alfa 7 veya daha eski bir Mimari Bileşeni'ni kullanıyorsanız verileri korumak için taşıma işlemi uygulamanız veya oluşturucuda fallbackToDestructiveMigration() yöntemini kullanmanız gerekir. b/62007004

API Değişiklikleri

1.0.0 Alfa 7 - 26 Temmuz 2017

Hata düzeltmeleri

1.0.0 Alfa 6 - 25 Temmuz 2017

Davranış değişiklikleri

  • LifecycleObserver çağrılarının sırası değiştirildi. Önceden, gözlemciler her zaman ekleme sırasına göre çağrılıyordu: observer1, observer2 tarihinden önce eklenirse ON_CREATE ve diğer tüm etkinlikleri observer2 tarihinden önce alır. Bu, yıkım olayları için artık geçerli değil. Onlar için gözlemciler, toplama işleminin tersi sırayla çağrılıyor. Mevcut davranış ise şu şekildedir: observer1, observer2 öncesine eklenirse önce observer1, ardından observer2 içine ON_CREATE gönderilir (ON_START ve ON_RESUME için de aynı şey olur). Ancak ON_PAUSE etkinliği önce observer2, sonra da observer1 (ON_STOP ve ON_DESTROY için aynı şekilde) gönderilir.

  • Taşıma işlemi eksikse oda bir istisna gönderiyor. Daha önce Room yalnızca veritabanını temizliyordu ancak şimdi kilitleniyor. Geliştiriciler, oluşturucu API'sini çağırarak temizleme davranışını etkinleştirebilir. b/63872392

API Değişiklikleri

  • Taşıma işlemi eksikse veritabanını temizlemek için RoomDatabase.Builder öğesine fallbackToDestructiveMigration() yöntemi eklendi. b/63872392

  • Mimari bileşenleri artık 26.0.0 destek kitaplığına bağlıdır

Hata düzeltmeleri

  • @Yerleşik'e yerleştirilmiş @Relation değerinin işlenmesi düzeltildi. b/63736065

  • Otomatik artan birincil anahtara sahip tablolar için test taşıma işlemleri düzeltildi. b/63393618

  • DELETE veya UPDATE sorgularını çalıştıran @Sorgular artık bağımsız değişkenleri doğru şekilde almaktadır. b/63872538

  • Artık sahip parçası geri yığında olduğunda ve yapılandırma değişikliği iki kez gerçekleştiğinde ViewModels korunur. b/38445801

1.0.0 Alfa 5 - 18 Temmuz 2017

API Değişiklikleri

RxJava desteğini Odaya eklemek için android.arch.persistence.room:rxjava2 yapısını kullanmanız gerekir.

Hata düzeltmeleri

  • Parametre içermeyen @Delete sorgu düzeltildi. b/63608092

  • Alıcı ve belirleyiciler için sabit Oda türü kontrolleri. b/63733651

1.0.0 Alfa 4 - 11 Temmuz 2017

API Değişiklikleri

  • RoomDatabase'e yeni bir kolaylık yöntemi (runInTransaction()) eklendi.

  • @Insert, @Delete ve @Update yöntemleri artık farklı varlık türlerinden parametreler içerebilir. b/62682405

Hata Düzeltmeleri

  • @Dao yöntemlerinde byte[] işleme düzeltildi. b/62460045

  • Odadaki taşıma kontrolü artık büyük/küçük harfe duyarlı olmayan karşılaştırma kullanıyor. b/62875382

  • Yaşam Döngüleri yapısı için ProGuard yapılandırması düzeltildi. b/62113696

1.0.0 Alfa 3 - 15 Haziran 2017

API Değişiklikleri

  • @OnLifecycleEvent şu anda yalnızca 1 etkinlik parametresini destekliyor. Bu, Java 8 desteği için hazırlık sürecinde olan bir değişikliktir. Böylece gelecekte varsayılan yöntemlere sahip arayüzlere geçiş yapabiliriz. Bu değişiklikle ilgili olarak, yalnızca @OnLifecycleEvent(ON_ANY) ek açıklamalı yöntemler Event türünde ikinci bir parametre alabilir (ilk parametre LifecycleOwner). Ayrıntılar için Yaşam döngüsü belgelerine bakın.

  • LifecycleActivity ve LifecycleFragment sınıfları android.arch.lifecycle:extensions yapısına taşınır.

  • TaşımaTestHelper, şemayı test öğelerinden okuyabilmek ve veritabanını uygulama bağlamında oluşturabilmek için Context yerine Enstrümantasyon örneğini alır.

  • @DAO yöntemlerindeki @Insert, @Delete ve @Update ek açıklamalarındaki parametre türü artık Iterable olabilir. b/62259820

Hata Düzeltmeleri

  • Yaşam döngüsü olayları içeren geçersiz kılınan yöntemler artık birden çok kez çağrılmıyor.

  • Birden fazla IN parametresi artık düzgün bir şekilde işleniyor. b/62608681

  • Soyut DAO sınıflarında artık @Database örneğini alan bir kurucu olabilir. b/38488747

  • DAO öğeleri artık tür parametreleriyle bir süper sınıf/arayüz içerebilir. b/62103620

1.0.0 Alfa 2 - 2 Haziran 2017

API Değişiklikleri

Hata Düzeltmeleri

  • Yaşam döngüleri için ProGuard dosyaları. (b/62113696)
  • Tür Dönüştürücüler ile veri kaybı. (b/62100716)
  • @Insert sorgudan Long[] döndürülmesine izin ver.

1.0.0 Alfa 1 - 17 Mayıs 2017

MinSDK: 14

Genel tavsiyeler

  • Lansmandan önce birçok test yapmış olsak da Mimari Bileşenleri şu anda alfa sürümündedir. Üretim uygulaması oluşturuyorsanız API'nin 1.0 sürümünden önce değişeceğini ve tam olarak sağlam olmayabileceğini unutmayın. Kullandığınız kitaplıklarda sorun giderme konusunda kendinizi rahat hissetmiyorsanız ilk olarak yan projelerdeki Mimari Bileşenler'i denemenizi öneririz.

  • Herkesin taşıma işlemini bugün gerçekleştirmesini önermiyoruz. Mimari bileşenlerinin 1.0 sürümü için hazır bir taşıma rehberimiz olacak.

Bilinen sınırlamalar ve sorunlar