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
yerineRoom
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
Navigasyon
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çerenMenuItem
öğeleri,NavigationUI
yöntemleriyle kullanıldığında artık arka yığını göstermiyor. b/120104424AppBarConfiguration
artıknavController.navigateUp()
false
değerini döndürdüğünde çağrılacak yedekOnNavigateUpListener
ö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/111736515onNavDestinationSelected()
artık varsayılan olarak gezinme grafiğinizin başlangıç noktasına geri dönüyor. Böylecesetup
yöntemleriyle tutarlı hale geliyorlar. Geri yığının ortaya çıkmasını önlemek içinMenuItem
öğenizemenuCategory="secondary"
ekleyin. aosp/852869- Oluşturulan
Args
sınıflarınınfromBundle()
yöntemleri artık null özellikliBundle
yerine null olmayanBundle
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üzeyResult
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ı.
Navigasyon
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 olarakandroid: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şkenlerininBundle
kadarını da iletirapp:clearTask
veapp: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 birlikteapp:popUpTo
kodunu kullanın. b/119628354ActivityNavigator.Extras
artıkBuilder
kalıbı kullanıyor veIntent.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
veAppBarConfiguration
)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ıkContext
aosp/835340 gerektirmiyor- NavigatorProvider artık bir arayüz yerine
bir sınıftır.
getNavigatorProvider()
tarafından döndürülenNavigatorProvider
işlevinde değişiklik yapılmadı. aosp/830660 NavDestination.navigate()
kaldırıldı. Bunun yerineNavigator
numaralı telefondannavigate()
numaralı telefonu arayın. aosp/830663Navigator
öğesinin önemli ölçüde yeniden düzenlenmesi,OnNavigatorNavigatedListener
ihtiyacını ortadan kaldırması venavigate
öğesinin, gidilenNavDestination
öğesini döndürmesi.Navigator
örnekleri artıkNavController
ürününe pop etkinlik gönderemez. Geri düğmesine basılmasını engellemek venavController.popBackStack()
numaralı telefonu aramak içinOnBackPressedCallback
kullanmayı düşünün. aosp/833716
Hata Düzeltmeleri
- Hedef,
<navigation>
öğesi olduğundapopUpTo
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>
hedeflerinindataPattern
özelliği artıktoString()
ç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 birListenableWorker
. - 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ıkResult.success()
(veyaResult.success(Data)
),Result.failure()
(veyaResult.failure(Data)
) veResult.retry()
aracılığıyla edinebileceğiniz üç somut uygulamaya sahip bir "kapalı sınıf" oldu.ListenableFuture
öğeleriniz artıkPayload
yerineResult
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()
veListenableFuture.await()
Kotlin uzantı yöntemleri eklendi.Operation.getException()
adlı dosyaOperation.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
veOneTimeWorkRequest
uygulamalarındaki diğer değişken yöntemleri kaldırıldı. Derleme sorunlarını düzeltmek için mevcut değişkenleriniziArrays.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ı; mevcutcombine
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özlemlenenLiveData
, 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()
boyuncaCANCELLED
State
ile birWorkInfo
döndürür. ListenableWorker
öğesindenull
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ıkResult.success()
(veyaResult.success(Data)
),Result.failure()
(veyaResult.failure(Data)
) veResult.retry()
aracılığıyla edinebileceğiniz üç somut uygulamaya sahip bir "kapalı sınıf" oldu.ListenableFuture
öğeleriniz artıkPayload
yerineResult
sonucunu veriyor.Worker
öğeleri,Data
çıkışı için getter ve setter yöntemlerine sahip değil.Operation.await()
veListenableFuture.await()
Kotlin uzantı yöntemleri eklendi.Operation.getException()
adlı dosyaOperation.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
veOneTimeWorkRequest
uygulamalarındaki diğer değişken yöntemleri kaldırıldı. Derleme sorunlarını düzeltmek için mevcut değişkenleriniziArrays.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ı; mevcutcombine
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 FTStokenizer
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çlerFtsOptions
öğ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ü olarakListenableFuture
değerini destekliyor. b/119418331
Hata Düzeltmeleri
- Odanın,
@Entity
özelliğininignoredColumns
ö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şitliCollection
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 birCoroutineWorker
sunuyor.WorkStatus
,WorkInfo
olarak yeniden adlandırıldı. İlgili tümgetStatus
yöntemi varyantları, karşılık gelengetWorkInfo
varyantları olarak yeniden adlandırıldı. Bu, zarara yol açacak bir değişiklik.ListenableWorker.onStopped()
, artıkWorkRequest
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()
veWorkerParameters.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()
veConfiguration.getMinJobSchedulerID()
, sırasıylaConfiguration.getMinJobSchedulerId()
veConfiguration.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 benzersizOneTimeWorkRequest
'leri sıraya almak içinWorkManager.enqueueUniqueWork()
API ekleyin.WorkManager
üzerindeki tümenqueue
vecancel
yöntemleri artık yeni birOperation
türü döndürüyor. Bu, zarara yol açacak bir değişiklik.enqueue
işlevinin hiçbir varyantları artıkWorkRequest
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çinArrays.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 kezinitialize
işlemi yapılmaya çalışılırsaIllegalStateException
sonucu elde edilir. Bu, zarara yol açacak bir değişiklik.
Hata Düzeltmeleri
work-runtime-ktx
yapısındakiWorkRequest.Builder
öğeleri artıkListenableWorker
kullan��yor. Düzeltmeler b/117666259PeriodicWork
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ümgetStatus
yöntemi varyantları, karşılık gelengetWorkInfo
varyantları olarak yeniden adlandırıldı.ListenableWorker.onStopped()
, artıkWorkRequest
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()
veWorkerParameters.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()
veConfiguration.getMinJobSchedulerID()
, sırasıylaConfiguration.getMinJobSchedulerId()
veConfiguration.getMaxJobSchedulerId()
olarak yeniden adlandırıldı.WorkManager
üzerindeki tümenqueue
vecancel
yöntemleri artık yeni birOperation
türü döndürüyor.enqueue
işlevinin hiçbir varyantları artıkWorkRequest
için değişkenleri kabul etmiyor.WorkManager
için işlem başına birden fazla kezinitialize
işlemi yapılmaya çalışılırsaIllegalStateException
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
Navigasyon
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 olarakandroidx.paging.Config()
eklendiPagedList.Builder
için Kotlin alternatifi olarakandroidx.paging.PagedList()
eklendiLivePagedListBuilder
için Kotlin alternatifi olarakDataSourceFactory.toLiveData()
eklendiRxPagedListBuilder
için Kotlin alternatifleri olarakDataSourceFactory.toObservable()
vetoFlowable()
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ıkIndexOutOfBoundsException
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ılanWorker
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ılanListenableFuture<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ızdaListenableFuture
öğesini uygun şekilde güncellemeniz gerekir.ListenableFuture
öğelerinin referans uygulamalarıalpha02
içindekiFutures
paketinde sağlanmıştır (aşağıdakiWorkManager
bölümüne bakın).Worker
,ListenableWorker
kapsamını genişletir ve soyutResult doWork()
yöntemiyle çalışmaya devam eder.- Bazı yöntemler ve üyeler
Worker
adlı kullanıcıdanListenableWorker
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 uygulamaDefaultWorkerFactory
,WorkerFactory
adlı soyut sınıfta birleştirildi. Uygulama, varsayılan yansımaya dayalı davranışın, kullanıcı tarafından oluşturulan tümWorkerFactory
ö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ü olarakListenableFuture<Void>
eklendi. Bu, olumsuz bir API değişikliğidir.- Artık
ListenableFuture
öğelerini kullanarak eşzamanlı olarak alabilir ve g��zlemleyebilirsiniz. ÖrneğinWorkManager.enqueue()
, eskidenvoid
değerini döndürürken artıkListenableFuture<Void>
değerini döndürüyor. İşlem tamamlandıktan sonra kodu çalıştırmak içinListenableFuture.addListener(Runnable, Executor)
veyaListenableFuture.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çinListenableFuture
varyant sağladık veLiveData
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.
- Artık
Hata Düzeltmeleri
- Yinelenen
androidx-annotations.pro
dosyalarıyla ilgili bilinen alfa09 sorunu düzeltildi. Gradle dosyanızdanexclude '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 REPLACE
d. b/116253486 ve b/116677275 olan bir yarış koşulunda olasıNullPointerException
düzeltmeWorkContinuation.combine()
artık iki veya daha fazla yerine bir veya daha fazlaWorkContinuation
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ılanWorker
kurucusu) kaldırıldı. WorkerFactory
arayüzü ve somut uygulamaDefaultWorkerFactory
,WorkerFactory
adlı soyut sınıfta birleştirildi.WorkManager.synchronous()
veWorkContinuation.synchronous()
kaldırıldı.WorkManager.getStatus*()
yöntemleri artıkListenableFuture
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
veAbstractResolvableFuture
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ıkCompletable
,Single<T>
veMaybe<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/62334005fallbackToDestructiveMigrationOnDowngrade
: Eski sürüme geçilmesi durumunda veritabanını otomatik olarak yeniden oluşturan,RoomDatabase.Builder
içinde yeni bir API'dir. b/110416954ignoredColumns
:@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çindekimCallback
vemDatabase
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
Navigasyon
1.0.0-alpha06
gezinme rotası, hata düzeltmeleri ve API değişiklikleriyle yayınlandı.
Yeni Özellikler
- Parça ve Etkinlik hedefleri için Paylaşılan Öğe Geçişleri artık b/79665225 desteklenmektedir. Daha fazla bilgi için Gezinme Mimarisi Bileşeniyle gezinmeyi uygulama bölümüne bakın
NavigationView
içinde bir öğe seçildiğinde b/112158843 alt sayfasını içeren tüm sayfalar kapatılır
API Değişiklikleri
- Köklü Değişiklik: Gezgin
navigate()
yöntemi artık birNavigator.Extras
parametresi alıyor. - NavController'ın
getGraph()
yöntemi artıkNonNull
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/111961977onSaveState()
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 birWorkerFactory
belirterek çalışma zamanında kendiWorker
ö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
veNonBlockingWorker
için varsayılan oluşturucular kullanımdan kaldırılmış olarak işaretlendi. Lütfen yeni oluşturucuyu (Worker(Context, WorkerParameters)
) kullanın vesuper(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)
veTestDriver.setPeriodDelayMet(UUID)
aracılığıylaTestDriver
içinde zamanlı çalışmayı tetikleme özelliği ekleyin. b/113360060
Zarar Veren Değişiklikler
- Varsayılan
Worker
veNonBlockingWorker
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çinConfiguration.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 birConcurrentModificationException
düzeltildi. b/112272753Data.getBooleanArray(String)
veData.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ıkNonBlockingWorker
adlı yeni bir sınıfın kapsamını genişletiyor. Bu durum mevcut kullanımı etkilemez. GelecekteNonBlockingWorker
, özel ileti dizisi çözümleri için tam olarak desteklenen bir varlık haline gelecek.Data.getBooleanArray(String)
veData.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üzeyworkDataOf(vararg Pair<String, Any?>)
eklendi.
10 Ağustos 2018
Navigasyon
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/56WorkRequest.Builder#build()
kullanırken benzersizWorkRequest
'ler oluşturun. b/111408337RescheduleReceiver
kullanımını yalnızca buna ihtiyaç duyanWorkRequest
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 birIllegalStateException
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, WorkManagerLog.INFO
ve üstünü günlüğe kaydeder. Data.getString()
imzası, artık varsayılan değer kullanmayacak şekilde değiştirildi (dolaylı olaraknull
). 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()
veData.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ırkenPeriodicWorkRequest
öğ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 sonraTestScheduler.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ı olaraknull
).- Yalnızca dahili kullanım için gereken bazı yöntemler
@hide
olarak işaretlendi.Constraints
oluşturucusu,Data.toByteArray()
veData.fromByteArray(byte[])
buna dahildir.
19 Temmuz 2018
Navigasyon
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çinapp: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
Navigasyon
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
- Örneğin
- 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()
vehashCode()
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
veAsyncPagedListDiffer
öğ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
veAsyncPagedListDiffer
ö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ırkenPeriodicWorkRequest
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ü olangetStatusesSync()
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 bulunursatrue
değerini döndürür.Worker.isCancelled()
, iş açık bir şekilde iptal edildiğindetrue
değerini döndürür. b/79632247API 28'de JobParameters#getNetwork() için destek ekleyin. Bu bilgi,
Worker.getNetwork()
üzerinden açığa çıktı.JobScheduler
veyaAlarmManager
adreslerine kaç iş gönderilebileceğini zorunlu kılabilmeniz içinConfiguration.Builder.setMaxSchedulerLimit(int maxSchedulerLimit)
eklendi. Bu işlem,WorkManager
ürününün, uygunJobScheduler
yuvalarınızın tamamını kullanmasını engellemeye yardımcı olur.WorkManager
tarafından kullanılabilecek bir diziJobScheduler
iş kimliğinin tanımlanmasına yardımcı olanConfiguration.setJobSchedulerJobIdRange(int minJobSchedulerId, int maxJobSchedulerId)
eklendi. b/79996760Worker.getRunAttemptCount()
, belirli birWorker
için mevcut çalıştırma sayısını döndürür. b/79716516WorkManager.enqueueUniquePeriodicWork(String uniqueWorkName, ExistingPeriodicWorkPolicy existingPeriodicWorkPolicy, PeriodicWorkRequest periodicWork)
, benzersizPeriodicWorkRequest
'leri sıraya almanıza olanak tanır. b/79600647WorkManager.cancelAllWork()
, tümWorker
öğelerini iptal eder.WorkManager
öğesine bağlı kitaplıklar, dahili durumu ek olarak temizlemek içinWorkManager.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 veyaid
kullanılamadığındaWorkRequest
öğelerinin kaldırılmasına olanak tanır. b/109572351
Zarar Veren Değişiklikler
Worker.WorkerResult
adlı dosyaWorker.Result
olarak yeniden adlandırıldı.Worker
açıkça iptal edildiğindeWorker.onStopped
artıktrue
olarak ayarlanan ek birisCancelled
parametresine sahip.
7 Haziran 2018
1.0.0-alpha02
gezinme paneli serbest bırakıldı.
Navigasyon
Davranış Değişiklikleri
FragmentNavigator
artıksetReorderingAllowed(true)
kullanıyor. b/109826220Gezinme 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/79632233Gezinme, 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/79656847NavDeepLinkBuilder 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/80453447launchSingleTop
kullanılırken çakışan Parçalarla ilgili sorun giderildi. b/79407969Gezinme 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çinclearTask
özelliği kullanımdan kaldırıldı. b/80338878NavOptions
kapsamındaki işlemler ve ilişkili API içinlaunchDocument
ö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 birNullPointerException
düzeltildi. b/79550068Worker
toplantısınınApplication.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
grubundakifloat
için destek eklendi. b/79443878Data.Builder.putAll()
artıkBuilder
öğesinin bir örneğini döndürüyor. b/79699162Dokümanlarda daha fazla javadoc ve düzeltmeler. b/79691663
API Değişiklikleri
Worker
kullanıcıları durdurulmaya tepki verebilir.Worker.isStopped()
, birWorker
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 etiketlerinSet
kadarını döndürür.Süre ve
TimeUnit
saniyelerini birlikte kullanan API'ler içinjavax.time.Duration
aşırı yüklemeleri eklendi. Bu koruma@RequiresApi(26)
tarafından yönetiliyor.WorkManager
uzantı,androidx.work.ktx
paketindenandroidx.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 yerineConfiguration.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
- Oda artık Kotlin
1.2.40
ile uyumlu. b/78328708
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
, yeniandroid.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ı dosyasetFetchExecutor()
olarak yeniden adlandırıldı (PagedList.Builder
veLivePagedListBuilder
içinde)setMainThreadExecutor()
adlı dosyasetNotifyExecutor()
olarak yeniden adlandırıldı (PagedList.Builder
içinde).
PagedList.mCallbacks
üyenin gizli olması düzeltildi.
Hata Düzeltmeleri
LivePagedListBuilder
, ilkPagedList
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ılanPositionalDataSource
yüklemesi için kullanılır) b/77237534
Room
Hata Düzeltmeleri
Room'un Rx
Single
veMaybe
uygulamalarında, sorguyu önceden geri dönüştürmesine neden olan ve döndürülenSingle
veyaMaybe
verilerine 1'den fazla gözlemci eklerseniz sorunlara neden olan kritik bir hata düzeltildi. b/76031240RoomDatabase.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
- API İncelemesi geri bildirimine göre
@RawQuery
, artık sorgu parametresi olarakString
değerinin iletilmesini kabul etmiyor. SupportSQLiteQuery kullanmanız gerekir. (Bağımsız değişken desteğiyle SupportSQLiteQuery örneğini kolayca oluşturmak için BasitSQLiteQuery'ye bakın). - RoomDatabase.Builder'ın fallbackToDestructiveMigrationFrom yöntemi artık
vararg Integer
yerinevararg int
kabul ediyor.
Hata Düzeltmeleri
RoomDatabase.clearAllTables artık bir WAL kontrol noktası ayarlayarak ve veritabanını
VACUUM
leştirerek işletim sistemine alanı geri döndürmeye çalışıyor.@RawQuery
,Embedded
alanları veyaRelation
'leri aracılığıyla bir veya daha fazla varlığa referans verdiği süreceobservedEntities
mülkü için her Pojo'yu artık kabul ediyor. b/74041772Sayfalama: 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 veDataSource.LoadCallback
nesne soyut özellikte. Bu,DataSource
öğesinin sarmalanmasını veyaDataSource
öğesinin örnek geri çağırmayla doğrudan test edilmesini sağlar. b/72600421- DataSource ve DataSource.Factory Harita Çalışanları
map(Function<IN,OUT>)
, birDataSource
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 veLivePagedListProvider
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çinBoundaryCallback.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
veremoveObserver
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/63807999SupportSQLiteQuery
artık sorgu parametrelerinin sayısını döndüren birgetArgCount()
yöntemine sahip. b/67038952
Hata Düzeltmeleri
@RawQuery
artık Sayfalama sorguları için düzgün bir şekilde desteklenmektedir. b/726004252 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/73536380Pojo
öğ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/73534868Dao
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
vecom.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)
vegetCurrentList().size()
arama kalıbının lehinegetItem(index)
/getItemCount()
kaldırıldı.
- Daha açık olan
- 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
üzerindekisetJournalMode()
yöntemini kullanarak kontrol edebilirsiniz. b/67757002Guava Desteği: Oda artık
DAO
sorgularında GuavaOptional<T>
veyaListenableFuture<T>
döndürülmesini destekliyor.ListenableFuture<T>
özelliğini kullanmak için Odadanguava
yapıyı içe aktarmanız gerekir (android.arch.persistence.room:guava:1.1.0-alpha2
).Oda artık
DAO
sorgudanjava.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 hemJava 8
hem deKotlin
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/72366965Room, 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/67181813Eski 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
veLifecycleFragment
kaldırıldı. LütfenFragmentActivity
,AppCompatActivity
kullanın veyaFragment
desteği sağlayın. ViewModelProviders
veViewModelStores
bölümlerine@NonNull
ek açıklama eklendiViewModelProviders
oluşturucu kullanımdan kaldırıldı. Lütfen statik yöntemlerini doğrudan kullanınViewModelProviders.DefaultFactory
desteği sonlandırıldı - lütfenViewModelProvider.AndroidViewModelFactory
kullanınViewModel
veAndroidViewModel
örnekleri oluşturmaya uygun bir statikFactory
almak için statikViewModelProvider.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/71458963fallBackToDestructiveMigrationsFrom
: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çinalpha-4
veya daha yüksek bir sayfa numarası kullanmanız ve henüz yapmadıysanızLivePagedListProvider
değerindenLivePagedListBuilder
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çinPositionalDataSource
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çinItemKeyedDataSource
olarak yeniden adlandırdı.LivePagedListBuilder
veDataSource.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 kodununLiveData
bağımsız olarak kalmasına izin verir.Veritabanı ve ağ kullanım alanı için
PagedList.BoundaryCallback
eklendi.PagedList.Builder
kurucusu, artıkLivePagedListBuilder
ile daha benzer olanDataSource
+PagedList.Config
öğelerini alır ve Java dilinde elmas operatörüne veya Kotlin'de türetilmiş türlere izin verir.PagedList.getConfig()
eklendi vePagedList.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
LiveDataReactiveStreams
artık Reaktif Akışlar spesifikasyonunu düzgün bir şekilde uyguluyor. b/67999342
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ığındaLifecycle.Event#ON_STOP
artık yola çıkmış durumdadır (önceden,ON_STOP
dağıtılmadan sadeceCREATED
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ı).
- Oda artık derleme sırasında
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/63474615Yaş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/66525578ProGuard 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
veyaLong
iseNullable
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, yenicommon-java8
yapısını kullanmak içinandroid.arch.lifecycle:common:1.0.1
modülüne açık bir bağımlılık eklemeniz gerekiyor. Bu sorunbeta2
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ı veandroid.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ürecetransient
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:
- Veritabanı yapılandırmasındaki API değişiklikleri. b/65349673 b/65499876
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
- Aşağıdaki sınıflar kullanımdan kaldırılmıştır ve gelecekteki bir sürümde kaldırılacaktır:
Hata Düzeltmeleri
Oluşturulan sınıflara artık ek açıklamanın sınıf yolunda
@Generated
ek açıklaması ekleniyor. b/35754819MediatorLiveData'nın gözlemci karşılaştırma hatası düzeltildi. b/64413274
SQLite
WITH
sorguları artık [LiveData] ile desteklenmektedir. [ref-LiveData] b/625101641'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
- LiveData'daki bir hata düzeltildi. İlk Gözlemci,
onChanged
yönteminden kaldırıldığında bu sunucu yoksayıldı. b/64285805
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şturucudafallbackToDestructiveMigration()
yöntemini kullanmanız gerekir. b/62007004
API Değişiklikleri
- SupportSQLiteProgram artık AutoCloseable işlevini genişletiyor. b/63131997
1.0.0 Alfa 7 - 26 Temmuz 2017
Hata düzeltmeleri
Bir LifecycleObserver okumasını bozan LifecycleRegistry
removeObserver
yöntemindeki kritik kritik hata düzeltildi.b/63162311 adlı özel veritabanları için InvalidationTracker düzeltildi
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 eklenirseON_CREATE
ve diğer tüm etkinlikleriobserver2
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 önceobserver1
, ardındanobserver2
içineON_CREATE
gönderilir (ON_START
veON_RESUME
için de aynı şey olur). AncakON_PAUSE
etkinliği önceobserver2
, sonra daobserver1
(ON_STOP
veON_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
öğesinefallbackToDestructiveMigration()
yöntemi eklendi. b/63872392Mimari 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
Bir veritabanının ne zaman oluşturulduğunu veya açıldığını gözlemlemek için
RoomDatabase.Builder
öğesine yeni bir geri çağırma yöntemi eklendi. b/62699324@Query artık RxJava
Maybe
veyaSingle
döndürebilir. b/62231019
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/63608092Alı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öntemlerindebyte[]
işleme düzeltildi. b/62460045Odadaki 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öntemlerEvent
türünde ikinci bir parametre alabilir (ilk parametreLifecycleOwner
). Ayrıntılar için Yaşam döngüsü belgelerine bakın.LifecycleActivity
veLifecycleFragment
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ıkIterable
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/62608681Soyut DAO sınıflarında artık
@Database
örneğini alan bir kurucu olabilir. b/38488747DAO
öğ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
InvalidationTracker geri çağırması, artık değiştirilen tablo adlarının listesini alıyor. (b/38468740)
SupportSQLiteDatabase sınıfının API yüzeyi kısaltıldı. (b/38481640)
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
sorgudanLong[]
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
- Destek Kitaplığı'ndaki
Fragment
veActivityCompat
yaşam döngüsü,LifecycleOwner
arayüzünü henüz uygulamamaktadır. Mimari Bileşenler 1.0.0 sürümüne ulaştığında olacak.