15 Ocak 2019
WorkManager
WorkManager 1.0.0-beta02
yayınlandı. Bu sürüm bazı hata düzeltmeleri içeriyor.
Hata Düzeltmeleri
- Periyodik işlerin aralık başına birden fazla kez yürütülebileceği sıra dışı bir durum düzeltildi (API düzeyi 23) çalıştıran cihazlarda. b/121998363
- Android 5.1 (API) çalıştıran cihazlarda
ConcurrentModificationException
sorunu düzeltildi 22. seviye) veya daha düşük bir düzeyde olduğunu varsayalım. b/121345393 - Cihazlarda Kısıtlamalar karşılanmadığında işin yürütülmesinde hatalar düzeltildi Android 5.1 (API düzeyi 22) veya daha düşük bir sürümü çalıştıran. b/122578012
- Bazı sıra dışı durumlarda daha hızlı olması için iş tamamlama işlemi optimize edildi. b/122358129
- Birden fazla örnekteki olası yarış koşullarını ele almak için bir değişiklik eklendi
ve WorkManager'ın kullandığı
LiveData
tanedir. 1.1.1-rc01
yerine1.1.1
Room
bağımlılığı kullanılacak şekilde taşındı; bu sürümleri aynı. b/122578011
19 Aralık 2018
WorkManager
WorkManager 1.0.0-beta01
yayınlandı. Bu sürümde API değişikliği bulunmuyor; bundan sonra, kritik bir sorun olmadığı sürece WorkManager'ın bir sonraki sürüme kadar API'de kararlı kalması beklenmektedir. Bu sürüm bazı hata düzeltmeleri içeriyor.
Hata Düzeltmeleri
- Başarıyla tamamlanmış üst çalışmanın daha önce iptal edilen alt öğeleri artık çalıştırılmayacak. b/120811767
- Uygun şekilde başlatılmış günlük kaydı sınıfları (öncelikle testler sırasında gösterilir).
18 Aralık 2018
Navigasyon
1.0.0-alpha09
navigasyonu serbest bırakıldı. Bu sürüm, zarar veren API değişikliklerini içeriyor;
lütfen aşağıdaki Zarar veren Değişiklikler bölümüne bakın.
Bu
android.arch.navigation:navigation-testing
yapı. Projenin yaşam döngüsünün
NavController
dahili testi için faydalı olacaktır.
NavController
örneğiyle alay etme gibi alternatif test stratejileri
kullanarak doğru navigate()
çağrılarının yapıldığını doğrulayın. Bu
Bu yaklaşım
AndroidDevSummit 2018'de Tek Etkinlik konuşması
özel olarak test etmeyle ilgili ek belgeler üzerinde
Navigasyonu başlatıyor.
Yeni Özellikler
menuCategory="secondary"
içerenMenuItem
öğeleri artık daha sonra öne çıkmayacak veya yığınNavigationUI
yöntemleriyle kullanıldığında. b/120104424AppBarConfiguration
artık yedek ayarlamanıza izin veriyorOnNavigateUpListener
navController.navigateUp()
döndüğünde çağrılacak olan örnekfalse
. b/79993862 b/120690961
Çarpıcı Değişiklikler
argType="reference"
ile bir<argument>
kullanılırken Navigasyon artık kullanılamaz referansı ayrıştırır; bunun yerine ham kaynak kimliğini sağlar. b/111736515onNavDestinationSelected()
artık varsayılan olarak gezinme grafiğinizin başlangıç konumuna geri dönüyor bu öğelerinsetup
yöntemleriyle tutarlı olmasını sağlar. Ekle Arka yığının patlamasını önlemek içinMenuItem
cihazınızamenuCategory="secondary"
. aosp/852869- Oluşturulan
Args
sınıflarınınfromBundle()
yöntemleri artık boş olmayan bir değer alıyor Null değer atanabilen birBundle
yerineBundle
aosp/845616
Hata Düzeltmeleri
- Bağımsız değişkenler artık derin bağlantılardan doğru
argType
olarak ayrıştırılıyor her zaman dizeler yerine b/110273284 - Gezinme 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ümlerle uyumlu. b/119662045
12 Aralık 2018
WorkManager
WorkManager 1.0.0-alpha13
yayınlandı. Bu sürüm, bazı Kotlin kullanıcıları için faydalı olabilecek küçük bir API değişikliği içerir.
API Değişiklikleri
androidx.work.Result
,ListenableWorker
iç sınıfı olacak. Bu, Kotlin'in üst düzeyResult
sınıfıyla çakışmaların yeniden düzenlenmesini önler. Bu, API'de zarar veren bir değişikliktir. b/120564418
Çağlık API Değişiklikleri
androidx.work.Result
,ListenableWorker
iç sınıfı olacak.
6 Aralık 2018
Sayfalama
2.1.0-beta01
tarihinden itibaren değişiklik yapılmadan 2.1.0-rc01
sayfası serbest bırakıldı.
Navigasyon
1.0.0-alpha08
navigasyonu serbest bırakıldı. Bu sürüm, zarar veren API değişikliklerini içeriyor;
lütfen aşağıdaki Zarar veren Değişiklikler bölümüne bakın.
Yeni Özellikler
- Hedef etiketleri,
NavigationUI
yöntemlerle kullanıldığında artık otomatik olarakandroid:label
içindeki{argName}
örneği doğru bağımsız değişkenle değiştirin b/80267266 - Gezinme artık Destek Kitaplığı 28.0.0 sürümüne bağlıdır b/120293333
Çarpıcı Değişiklikler
OnNavigatedListener
,OnDestinationChangedListener
olarak yeniden adlandırıldı b/118670572OnDestinationChangedListener
artıkBundle
bağımsız değişkeni de iletiyor aosp/837142app:clearTask
veapp:launchDocument
özellikleri ve bunlarla ilişkilendirilmiş yöntem kaldırıldı. Aşağıdaki işlemler için grafiğinizin köküyleapp:popUpTo
kullanın: arka yığınınızdaki tüm hedefleri kaldırın. b/119628354ActivityNavigator.Extras
artıkBuilder
kalıbını kullanıyor ve tümIntent.FLAG_ACTIVITY_
işaretlerini ayarla aosp/828140NavController.onHandleDeepLink
,handleDeepLink
olarak yeniden adlandırıldı aosp/836063- Alt sınıflandırmaya uygun olmayan birçok sınıf ve yöntem, örneğin
NavOptions
,NavInflater
,NavDeepLinkBuilder
veAppBarConfiguration
,final
yapıldı aosp/835681 - Desteği sonlandırılan
NavHostFragment.setGraph()
yöntemi kaldırıldı aosp/835684 - Desteği sonlandırılan
NavigationUI.navigateUp(DrawerLayout, NavController)
yöntemi kaldırıldı. aosp/835684 - Parça oluşturma işlemi
FragmentNavigator
hizmetine taşındı. Bu sayede kolayca Parça oluşturma yetkisini birFragmentFactory
kullanıcısına verin. b/119054429 NavGraphNavigator
oluşturucusu artıkContext
kullanmıyor aosp/835340- NavigatorProvider
bir sınıfa eklemektir.
NavigatorProvider
, tarafından geri verildigetNavigatorProvider()
işlevini değiştirmedi. aosp/830660 NavDestination.navigate()
kaldırıldı.Navigator
numaralı telefondannavigate()
adlı kuruluşu ara . aosp/830663Navigator
önemli ölçüde yeniden düzenlenerekOnNavigatorNavigatedListener
ihtiyacı ortadan kaldırıldınavigate
bunun yerine gidilenNavDestination
değerini döndürmesini sağlar.Navigator
örnekleri artık pop etkinlikleriniNavController
öğesine gönderemiyor. DikkatliceOnBackPressedCallback
kullanarak geri düğmesine basıldığında müdahale edin venavController.popBackStack()
işlevini çağırın. aosp/833716
Hata Düzeltmeleri
- Hedef,
<navigation>
öğesi olduğundapopUpTo
artık tutarlı şekilde çalışıyor b/116831650 IllegalArgumentException
hatasına neden olan bir dizi hata düzeltildi. iç içe yerleştirilmiş grafikler kullanıldığında b/118713731 b/113611083 b/113346925 b/113305559<activity>
hedeflerinindataPattern
özelliği artık doldurulacaktoString()
çağırarak Dize olmayan bağımsız değişkenlerden bağımsız değişkenler b/120161365
Güvenli Bağımsız Değişkenler
- Güvenli Bağımsız Değişkenler, Enum değerleri dahil olmak üzere Serileştirilebilir nesneleri destekler. Sıralama türleri
, sınıf adı olmadan enum değişmez değerini kullanarak varsayılan bir değer ayarlayabilir
(örn.
app:defaultValue="READ"
) b/111316353 - Güvenli Bağımsız Değişkenler, desteklenen tüm türlerdeki dizileri destekler b/111487504
- Güvenli Bağımsız Değişkenler artık kaynak dizinlerinin alt klasörlerini yoksayıyor b/117893516
- Safe Args, uygun olduğu durumlarda
@Override
ek açıklamaları ekler b/117145301
5 Aralık 2018
WorkManager
WorkManager 1.0.0-alpha12
yayınlandı. Bu sürümde zarar veren bazı API değişiklikleri var; lütfen aşağıdaki bozan API değişiklikleri bölümüne bakın. Bu sürüm büyük olasılıkla ilk beta sürümümüz olarak yayınlanacaktır. alpha12
ayrıca kapsamlı doküman güncellemeleri içeriyor.
API Değişiklikleri
- Yeni bir yapı olan
work-rxjava2
,RxWorker
ile tanışın. Bu,Single<Payload>
beklenen birListenableWorker
. - Firebase JobDispatcher desteği, yakında kullanımdan kaldırılacağı için kaldırılmıştır. Bu nedenle,
work-firebase
yapısının artık beta sürümüne geçilmeye başlanmayacağı anlamına gelir. Gelecekte bir alternatif eklemeyi planlıyoruz. Payload
,Result
olarak birleştirildi.Result
artık "mühürlü sınıf"Result.success()
(veyaResult.success(Data)
),Result.failure()
(ya daResult.failure(Data)
) veResult.retry()
yoluyla elde edebileceğiniz üç somut uygulamayla birlikte.ListenableFuture
'leriniz artıkPayload
yerineResult
ile sonuçlanıyor.Worker
öğeleri,Data
çıkışı için alıcı ve belirleyici yöntemlerine sahip değil. Bu, zarar veren bir değişikliktir.- Yavaş tetiklenen içerik URI'lerini daha iyi desteklemek için
Constraints.Builder.setTriggerContentMaxDelay(long, TimeUnit)
veConstraints.Builder.setTriggerContentUpdateDelay(long, TimeUnit)
ile varyantlar eklendi. b/119919774 WorkRequest.Builder.setBackoffCriteria(BackoffPolicy, Duration)
varyant eklendi. Bu yöntem API 26 gerektirir.Operation.await()
veListenableFuture.await()
Kotlin uzantı yöntemleri eklendi.Operation.getException()
adlı dosyaOperation.getThrowable()
olarak yeniden adlandırıldı. Bu, zarar veren bir değişikliktir.ContentUriTriggers
sınıfı ve buna referans veren yöntemler artık herkese açık olarak kullanılamaz. Bu, zarar veren bir değişikliktir.- API'yi kolaylaştırmak için
WorkManager
,WorkContinuation
veOneTimeWorkRequest
kapsamındaki diğer varargs yöntemleri kaldırıldı. Derleme sorunlarını düzeltmek için mevcut değişkenleriniziArrays.asList(...)
ile sarmalayabilirsiniz. Yine de her yöntemin tek bağımsız değişkenli sürümlerini dahil ederiz. Bu, zarar veren bir değişikliktir. WorkContinuation.combine(OneTimeWorkRequest, *)
varyant kaldırıldı. Kafa karıştırıcı bir API sunuyorlardı; mevcutcombine
yöntemleri daha anlaşılırdır. Bu, zarar veren bir değişikliktir.
Hata Düzeltmeleri
- Marshmallow öncesi uygulamalar, devam etmekte olan bir görevin işlem ölümünden kurtarmada artık daha güvenilirdir.
observeForever
aracılığıyla gözlemlenenLiveData
, WorkManager aracılığıyla izlenir. Bu, Oda kitaplığı düzeltmesinin geri bağlantı noktasıdır. b/74477406- Serileştirilmiş nesne maksimum boyutunu aşarsa
Data.Builder.build()
artık bir istisna yayınlıyor. Bu durum daha önce yalnızca düzgün bir şekilde işleyemediğiniz arka plan ileti dizilerinde gerçekleşiyordu. - Durdurulan ve iptal edilen çalışmaların daha farklı şekilde tespit edilmesi;
getWorkInfoById()
,ListenableWorker.onStopped()
sırasındaCANCELLED
State
ileWorkInfo
döndürecek. null
Result
öğeleriniListenableWorker
öğesinde başarısız olarak değerlendir. b/120362353- Bazen
IllegalArgumentException
hatası veren Shield 24 çalıştıran Shield Tabletler için spekülatif düzeltme. b/119484416
Çağlık API Değişiklikleri
- Firebase JobDispatcher desteği, yakında kullanımdan kaldırılacağı için kaldırılmıştır. Bu nedenle,
work-firebase
yapısının artık beta sürümüne geçilmeye başlanmayacağı anlamına gelir. Gelecekte bir alternatif eklemeyi planlıyoruz. Payload
,Result
olarak birleştirildi.Result
artık "mühürlü sınıf"Result.success()
(veyaResult.success(Data)
),Result.failure()
(ya daResult.failure(Data)
) veResult.retry()
yoluyla elde edebileceğiniz üç somut uygulamayla birlikte.ListenableFuture
'leriniz artıkPayload
yerineResult
ile sonuçlanıyor.Worker
öğeleri,Data
çıkışı için alıcı ve belirleyici yöntemlerine sahip değil.Operation.await()
veListenableFuture.await()
Kotlin uzantı yöntemleri eklendi.Operation.getException()
adlı dosyaOperation.getThrowable()
olarak yeniden adlandırıldı.ContentUriTriggers
sınıfı ve buna referans veren yöntemler artık herkese açık olarak kullanılamaz.- API'yi kolaylaştırmak için
WorkManager
,WorkContinuation
veOneTimeWorkRequest
kapsamındaki diğer varargs yöntemleri kaldırıldı. Derleme sorunlarını düzeltmek için mevcut değişkenleriniziArrays.asList(...)
ile sarmalayabilirsiniz. Yine de her yöntemin tek bağımsız değişkenli sürümlerini dahil 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ş yordamların desteği ve çeşitli hata düzeltmeleriyle birlikte yayınlandı.
API Değişiklikleri
@Fts3
/@Fts4
içindeki FTStokenizer
artık Enum yerine Dize alıyor. Bu, özel tokenleştiricilerin Room tarafından kullanılmasına olanak tanır. Yerleşik jeton oluşturucuları,FtsOptions
öğesinde dize sabitleri olarak tanımlanmaya devam ediyor. b/119234881
Yeni Özellikler
- Ders içerikleri: 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çıklamalarıyla eklenen DAO yöntemlerinde artık dönüş türü olarakListenableFuture
desteklemektedir. b/119418331
Hata Düzeltmeleri
- Odanın yanlışlıkla
@Entity
öğesininignoredColumns
özelliğinde sütunlara sahip bir oluşturucu bulmaya çalışmasına neden olan hata düzeltildi. b/119830714 - Odanın, DAO yöntemi parametrelerini oluşturulan uygulamada nihai olarak işaretlememesine neden olan hata düzeltildi. b/118015483
- Özel simgeler içeren bir sorguda hata bildirirken 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özlemlendiğinde atık toplanması ve bu nedenle artık yeni veri yayınlamamasına yol açan hata düzeltildi. b/74477406
- Kilit anlaşmazlığını azaltmak için
RoomDatabase
özelliğinin kapatma kilidi güncellendi. b/117900450
8 Kasım 2018
WorkManager
WorkManager 1.0.0-alpha11
yayınlandı. Bu sürüm, beta
itibarıyla kararlı API'ye dönüşecek birçok değişiklik içeriyor.
Bu sürümde zarar veren API değişiklikleri var; lütfen aşağıdaki bozan 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öntem varyantları ilgiligetWorkInfo
varyantı. Bu, zarar veren bir değişikliktir.ListenableWorker.onStopped()
,WorkRequest
işlevinin iptal edilip edilmediğini temsil eden bir boole bağımsız değişkenini artık kabul etmiyor.WorkManager
artık bu ayrımı yapmıyor. Bu, zarar veren bir değişikliktir.androidx.work.test
paketi,androidx.work.testing
paketi olarak yeniden adlandırıldı. Bu, zarar veren bir değişikliktir.Constraints
üzerindeki setler, artık herkese açık API'nin bir parçası değil. Bu, zarar veren bir değişikliktir.WorkerParameters.getTriggeredContentUris()
veWorkerParameters.getTriggeredContentAuthorities()
daha önce dizi döndürdü. Artık bu yöntemler Koleksiyonları döndürüyor. Bu, zarar veren bir değişikliktir.ListenableWorker.onStartWork()
,ListenableWorker.startWork()
olarak yeniden adlandırıldı. Bu, zarar veren bir değişikliktir.WorkStatus
oluşturucusu artık herkese açık API'nin bir parçası değil. Bu, zarar veren bir değişikliktir.Configuration.getMaxJobSchedulerID()
veConfiguration.getMinJobSchedulerID()
,Configuration.getMinJobSchedulerId()
olarak yeniden adlandırıldı veConfiguration.getMaxJobSchedulerId()
. Bu, zarar veren bir değişikliktir.- 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'si ekleyin.WorkManager
üzerindeki tümenqueue
vecancel
yöntemlerinin varyantları artık yeni birOperation
türü döndürüyor. Bu, zarar veren bir değişikliktir.enqueue
öğesinin hiçbir varyantı,WorkRequest
için artık değişken kabul etmiyor. Bu, zarar veren bir değişikliktir. Bunun yerine Koleksiyonları kullanın. Mevcut kodu değiştirmek içinArrays.asList()
uzantısını kullanabilirsiniz. Bu uygulamayla, API yüzeyini ve yöntem sayısını azalttık.- İşlem başına birden çok kez
WorkManager
initialize
girişiminde bulunmak artıkIllegalStateException
ile sonuçlanır. Bu, zarar veren bir değişikliktir.
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. Düzeltmeler b/118204399- Uygulama başlatılırken WorkManager'ı kullanırken olası disk G/Ç'sini kaldırın. Düzeltmeler b/117796731
WorkConstraintsTracker
oyununda bir yarış durumunu düzeltin. android-workmanager/issues/56 düzeltme
Çağlık API Değişiklikleri
WorkStatus
,WorkInfo
olarak yeniden adlandırıldı. İlgili tümgetStatus
yöntem varyantları ilgiligetWorkInfo
varyantı.ListenableWorker.onStopped()
,WorkRequest
işlevinin iptal edilip edilmediğini temsil eden bir boole bağımsız değişkenini artık kabul etmiyor.WorkManager
artık bu ayrımı yapmıyor.androidx.work.test
paketi,androidx.work.testing
paketi olarak yeniden adlandırıldı.Constraints
üzerindeki setler, 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şturucusu artık herkese açık API'nin bir parçası değil.Configuration.getMaxJobSchedulerID()
veConfiguration.getMinJobSchedulerID()
,Configuration.getMinJobSchedulerId()
olarak yeniden adlandırıldı veConfiguration.getMaxJobSchedulerId()
.WorkManager
üzerindeki tümenqueue
vecancel
yöntemlerinin varyantları artık yeni birOperation
türü döndürüyor.enqueue
öğesinin hiçbir varyantı,WorkRequest
için artık değişken kabul etmiyor.- İşlem başına birden çok kez
WorkManager
initialize
girişiminde bulunmak artıkIllegalStateException
ile sonuçlanır.
1 Kasım 2018
Sayfalama
2.1.0-alpha01
tarihinden itibaren değişiklik yapılmadan 2.1.0-beta01
sayfası serbest bırakıldı.
30 Ekim 2018
Room
2.1.0-alpha02
adlı oda, çeşitli hata düzeltmeleri ve yeni bir özellikle birlikte yayınlandı.
Yeni Özellikler
@Relation
içindeki bir@DatabaseView
öğesine referans verme desteği eklendi. b/117680932
Hata Düzeltmeleri
- Odanın, bir Rx dönüş türüne abone olurken ve bu türü atarken ana iş parçacığında disk G/Ç işlemi 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 bir dönüştürücü bulamamasına neden olan hata düzeltildi. b/111404868
- Odanın, bağımsız değişkeni olmayan bir Kotlin varsayılan yöntemi 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 olabilecek bir performans sorunu düzeltildi. b/117401230
29 Ekim 2018
Navigasyon
Hata düzeltmeleri ve API değişiklikleriyle birlikte 1.0.0-alpha07
navigasyonu yayınlandı.
Yeni Özellikler
- Yeni bir AppBarConfiguration sınıfı, hangi hedeflerin üst düzey olarak değerlendirileceğini özelleştirmenize olanak tanır. hedefler. Güncellenen belgelere göz atın. inceleyebilirsiniz. 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ı destekliyor. b/112806402
Çarpıcı Değişiklikler
navigation-testing-ktx
modülü şu kısma katlandı:navigation-testing artifact
ve artık yayınlanmayacak.navigation-testing
yapısı artık Kotlin standardına bağımlı bir yapıya sahip kitaplığını açar. API, Kotlin ile daha tutarlı olacak şekilde değiştirildi kurallarından yararlanır, ancak Java'da yazılan testlerde bunu kullanmaya devam edebilirsiniz.- Meta veri manifestinde kayıtlı gezinme grafikleri artık desteklenmiyor. b/118355937
- İşlemler artık <activity> öğesine eklenemez hedefler. 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 mod kullanılırken yapılandırma değişikliklerinden sonra ortaya çıkan kilitlenme düzeltildi Gezginler. b/110763345
Güvenli Bağımsız Değişkenler
- Güvenli bağımsız değişkenlerin artık Android Gradle Plugin 3.2.1'e sabit bir bağımlılığı var. b/113167627
- Artık iç sınıflar için yol tarifi oluşturulabilir. b/117407555
- <include> için Yol Tarifi oluşturmayla ilgili sorun giderildi grafiğe dönüştürülebilir. b/116542123
12 Ekim 2018
Sayfalama
2.1.0-alpha01
sayfalandırması, iki önemli eklemenin yanı sıra başka birçok API değişikliği ve hata düzeltmesinin yanı sıra, her yapı için sayfa bırakma ve KTX uzantı kitaplıkları dahil olmak üzere yayınlanmıştır.
API Değişiklikleri
- Bellekteki yüklenen öğelerin 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 geçen
PagedListAdapter.onCurrentListChanged()
varyant eklendi, önceki varyant desteği sonlandırıldı. - Farklılaştırmadan sonra, sayfalı liste gösterilirse/gösterildiğinde tetiklenen ek bir geri çağırmayı alan
PagedListAdapter/AsyncPagedListDiffer.submitList()
varyant eklendi. Bu, bir PagedList değişimini diğer kullanıcı arayüzü güncellemeleriyle senkronize etmenize olanak tanır. b/73781068 - Bellekte 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
- Listeler yeniden kullanılırsa fark uygulanırken ortaya çıkan yarış durumu düzeltildi b/111591017
- Dizin geçersiz olduğunda
PagedList.loadAround()
, artıkIndexOutOfBoundsException
hatası veriyor. Önceden, belirsiz bir diğer istisna nedeniyle kilitleniyordu. - Çok küçük bir başlangıç yükleme boyutunun ve değişmeyen verilerle birlikte daha fazla yüklenmemesine neden olma durumu düzeltildi b/113122599
11 Ekim 2018
WorkManager
Geliştirici tarafından kontrol edilen eşzamansız çalışma desteğiyle WorkManager 1.0.0-alpha10
yayınlandı. Bu sürümde zarar veren API değişiklikleri var; lütfen aşağıdaki bozan API değişiklikleri bölümüne bakın.
WorkManager'ın alfa döneminin son aşamalarına geçtiğini tahmin ediyoruz. Beta sürümde API'lerin kararlı çalışmasını bekliyoruz. Bu nedenle, sorun izleyicimiz hakkında geri bildirimde bulunmak için lütfen biraz zaman ayırın.
API Değişiklikleri
- Daha önce
deprecated
yöntemlerinin ve sınıflarının tümü, özellikle de varsayılanWorker
oluşturucusu kaldırıldı. Bu, API'de zarar veren bir değişikliktir. NonBlockingWorker
, artık gösterilmemiş, herkese açık ve kullanıma hazır bir sınıf olanListenableWorker
olarak yeniden adlandırıldı.ListenableWorker
, ana iş parçacığında çağrılanListenableFuture<Payload> onStartWork()
adlı tek soyut yönteme erişim sağlar. İşleri eşzamansız olarak başlatmak ve işlemek size bağlıdır. İşlemi tamamladığınızdaListenableFuture
uygun şekilde güncellemeniz gerekir.ListenableFuture
referans uygulamaları,alpha02
uygulamasındakiFutures
paketinde sağlanmıştır (WorkManager
bölümünün altına bakın).Worker
,ListenableWorker
öğesini genişletir ve soyut birResult doWork()
yöntemiyle önceki gibi çalışmaya devam eder.Worker
öğesinden bazı yöntemler ve üyelerListenableWorker
olarak karıştırıldı.- Yakında, Kotlin eş yordamları (kararlı sürümler yayınlandıktan sonra) ve RxJava2 kullanan
ListenableWorker
'ler için referans uygulamaları sağlayacağız.
WorkerFactory
arayüzü veDefaultWorkerFactory
somut uygulaması,WorkerFactory
adlı soyut bir sınıfta birleştirildi. Uygulama, varsayılan yansıtmaya dayalı davranışın, kullanıcı tarafından oluşturulanWorkerFactory
örnekleri için son adım olarak değerlendirilmesini sağlar. Bu, zarar veren bir değişikliktir.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, API'de zarar veren bir değişikliktir.- Artık
ListenableFuture
öğelerini kullanarak eşzamanlı olarak alabilir ve gözlemleyebilirsiniz. Örneğin,WorkManager.enqueue()
,void
değerini döndürmek için kullanılır; şimdi birListenableFuture<Void>
döndürüyor. İşlem tamamlandığında kodu çalıştırmak içinListenableFuture.addListener(Runnable, Executor)
veyaListenableFuture.get()
yöntemini çağırabilirsiniz. - Bu
ListenableFuture
'ların işlemin başarılı mı yoksa başarısız mı olduğunu söylemediğini unutmayın; geri bildirim verir. Bu bilgileri bulmak için yine de WorkManager yöntemleri kullanmanız gerekir. - Bu nesneler kafa karıştırıcı ve akıl yürütmeleri zor olduğundan (işlemi mi yoksa sonuç olarak yapılacak işi mi iptal ediyorsunuz?) nedeniyle
cancel()
çağrıları yok sayılır. Bu,Future
sözleşmesi kapsamındadır. - Eşzamanlı
getStatus*
yöntemleriyle denkliği korumak içinListenableFuture
varyant sağladık veLiveData
döndüren mevcut varyantları açık bir şekilde "LiveData" içerecek şekilde yeniden adlandırdık olarak da adlandırılır (örneğin,getStatusesByIdLiveData(UUID)
). Bu, API'de zarar veren bir değişikliktir.
- Artık
Hata Düzeltmeleri
- Alfa09 sürümünde yinelenen
androidx-annotations.pro
dosyalarıyla ilgili bilinen sorun düzeltildi. Gradle dosyanızdanexclude 'META-INF/proguard/androidx-annotations.pro'
öğesini silerek önceki sürüm notlarındaki geçici çözümü kaldırabilirsiniz. - Yeni
Worker
oluşturucusunu korumak için ProGuard yapılandırmaları eklendi. b/116296569 - Çalışmanın
REPLACE
gün olduğu bir yarış koşulunda potansiyelNullPointerException
düzeltildi. b/116253486 ve b/116677275 WorkContinuation.combine()
artık iki veya daha fazla yerine bir veya daha fazlaWorkContinuation
kabul ediyor. b/117266752
Çağlık API Değişiklikleri
- Daha önce
deprecated
yöntemlerinin ve sınıflarının tümü, özellikle de varsayılanWorker
oluşturucusu kaldırıldı. WorkerFactory
arayüzü veDefaultWorkerFactory
somut uygulaması,WorkerFactory
adlı soyut bir sınıfta birleştirildi.WorkManager.synchronous()
veWorkContinuation.synchronous()
kaldırıldı.WorkManager.getStatus*()
yöntemleri artıkListenableFuture
değeri döndürüyor.WorkManager.getStatus*LiveData()
,LiveData
değerini döndürür.
Vadeli İşlemler
Vadeli işlemler 1.0.0-alpha02
yayınlandı.
API Değişiklikleri
- Geliştiriciler artık
ListenableFuture
ile ilgili basit ve somut uygulamalar olarakResolvableFuture
veAbstractResolvableFuture
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 varlıkları destekliyor.
@Entity
ile not eklenen sınıflara artık eşleme tam metin arama tablosu içeren bir sınıfı bildirmek için@Fts3
veya@Fts4
ile ek açıklama eklenebilir. Daha fazla özelleştirme için FTS seçenekleri, ek açıklama yöntemleriyle kullanılabilir. b/62356416 - Görünümler: Oda artık bir sınıfın depolanmış sorgu olarak (@DatabaseView ek açıklaması kullanılarak görünüm) tanımlanmasını destekliyor. b/67033276
- Otomatik değer: Oda, AutoValue ek açıklamalı sınıfların varlık ve POJO olarak tanımlanmasını destekliyor.
@PrimaryKey
,@ColumnInfo
,@Embedded
ve@Relation
oda ek açıklamaları artık otomatik değer ek açıklaması olan sınıfın soyut yöntemlerinde tanımlanabilir. Odanın doğru bir şekilde anlayabilmesi için bu ek açıklamayla birlikte@CopyAnnotations
öğesinin de eklenmesi gerektiğini unutmayın. b/62408420 - Ek Rx Dönüş Türleri Desteği:
@Insert
,@Delete
veya@Update
ile ek açıklamalı DAO yöntemleri, artıkCompletable
,Single<T>
veMaybe<T>
Rx dönüş türlerini desteklemektedir. b/63317956 @Relation
İçeren Sabit Türler: Odada, daha önce@Relation
ek açıklamalı alanın ayarlanabilir olması gerekiyordu ancak artık kurucu parametreler olabilirler.enableMultiInstanceInvalidation
:RoomDatabase.Builder
ürününde aynı veritabanı dosyası kullanılarak birden fazla RoomDatabase örneğinde geçersiz kılma işlemi yapılmasını sağlayan yeni bir API'dir. Bu çok örnekli geçersiz kılma mekanizması, birden fazla işlemde de çalışır. b/62334005fallbackToDestructiveMigrationOnDowngrade
:RoomDatabase.Builder
ürününde, eski sürüme geçilmesi durumunda veritabanını otomatik olarak yeniden oluşturan yeni bir API'dir. b/110416954ignoredColumns
:@Entity
ek açıklamasında, yoksayılan alanları ada göre listelemek için kullanılabilen yeni bir API'dir. Bir varlıktaki devralınan alanları yoksaymak için kullanışlıdır. b/63522075
API / Davranış Değişiklikleri
RoomDatabase
kapsamındakimCallback
vemDatabase
artık@Deprecated
ve Odanın bir sonraki ana sürümünde kaldırılacak. b/76109329
Hata Düzeltmeleri
- Odanın bozuk bir veritabanından düzgün şekilde kurtarılamamasına veya başlatma sırasında hatalı bir taşıma işlemine neden olan iki sorun düzeltildi. b/111504749 ve b/111519144
- Oda, veri sınıflarında Kotlin'in birincil oluşturucusunu düzgün şekilde kullanır. Böylece, alanları
vars
olarak belirtme ihtiyacı ortadan kalkar. b/105769985
1 Ekim 2018
2.0.0
adlı oda, 2.0.0-rc01
tarihinden itibaren herhangi bir değişiklik yapılmadan iptal edildi.
2.0.0
sayfası, tek bir hata düzeltmesiyle yayınlandı.
Sayfalama
Hata Düzeltmeleri
PositionalDataSource
ve yer tutucular b/114635383 kullanılarak çok hızlı kaydırma yapıldığında oluşabilecek kilitlenme düzeltildi.
21 Eylül 2018
2.0.0
yaşam döngüsü, ViewModel'de 2.0.0-rc01
üzerinden yapılan bir hata düzeltmesiyle yayınlandı.
Yaşam döngüsü
Hata Düzeltmeleri
- b/112230489 oluşturucuları yanlış bir şekilde kaldıran bir ViewModel koruyucu kuralı düzeltildi
20 Eylül 2018
Navigasyon
Hata düzeltmeleri ve API değişiklikleriyle birlikte 1.0.0-alpha06
navigasyonu 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şeni ile gezinmeyi uygulama konusuna bakın.
NavigationView
içinde bir öğe seçtiğinizde bunu içeren tüm alt sayfalar b/112158843 kapatılır
API Değişiklikleri
- Çarpıcı Değişiklik: Navigator
navigate()
yöntemi artıkNavigator.Extras
parametresini almaktadır. - NavController'ın
getGraph()
yöntemi artıkNonNull
b/112243286 oldu
Hata Düzeltmeleri
NavigationUI.setupWithNavController()
, ayrı hedeflerden gelen görüntülemelerle kullanılırsa b/111961977 görüntüleme sayısını artık sızdırmıyoronSaveState()
adlı gezgin artık yalnızca bir kez çağrılıyor b/112627079
Güvenli Bağımsız Değişkenler
- Navigasyon hedefi Yol tarifi sınıfları artık, varsa velilerinin Yol Tarifi sınıfını genişletiyor b/79871405
- Yol Tarifi ve Bağımsız değişkenler sınıflarında artık kullanışlı bir
toString()
uygulaması bulunuyor b/111843389
19 Eylül 2018
WorkManager
Hata düzeltmeleri, altyapı güncellemeleri ve API değişiklikleriyle birlikte WorkManager 1.0.0-alpha09
yayınlandı.
Bilinen Sorun
Şu sorunla karşılaşırsanız: "İşletim sisteminden bağımsız 'META-INF/proguard/androidx-annotations.pro' yolunu kullanarak birden fazla dosya bulundu", alpha10 sürümünde bu sorunu geçici olarak düzeltirken lütfen aşağıdakini geçici bir çözüm olarak gradle dosyanıza yerleştirin:
Eski
android { packagingOptions { exclude 'META-INF/proguard/androidx-annotations.pro' } }
Kotlin
android { packagingOptions { exclude("META-INF/proguard/androidx-annotations.pro") } }
Hata Düzeltmeleri
- "100 iş" için gereken başka bir düzeltme eklendi hatası. b/115560696
- Yarış koşullarından kaynaklanan yabancı anahtar kısıtlaması 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
- Geliştirilmiş iş parçacığı oluşturma garantisi kitaplık içi garantiler sağlar.
- Dahili olarak
LiveData
tekilleştirilmesiyle ilgili olası sorunu düzeltin.
API Değişiklikleri
- Artık
WorkManager.Configuration
öğesinin bir parçası olarakWorkerFactory
belirterek çalışma zamanında kendiWorker
örneklerinizi oluşturabilirsiniz. Yedek fabrika, WorkManager'ın önceki sürümlerinin davranışıyla eşleşenDefaultWorkerFactory
.Worker
veNonBlockingWorker
için varsayılan oluşturucuları artık desteklenmiyor olarak işaretlendi. Lütfen yeni oluşturucuyu (Worker(Context, WorkerParameters)
) kullanın vesuper(Context, WorkerParameters)
çağrısı yapın; WorkManager'ın gelecekteki sürümleri varsayılan oluşturucuyu kaldıracaktır.
- Yeni
ListenableFuture
yapısını şirket içinde kullanmaya başladık (Guava bağımlılığı olmadan). Gelecek sürümlerde, API'de ListenableFutures özelliğini kullanıma sunacağız. Bu değişiklik,NonBlockingWorker
öğesinin nihai olarak gösterilmesini destekleyecek. TestDriver.setInitialDelayMet(UUID)
veTestDriver.setPeriodDelayMet(UUID)
aracılığıylaTestDriver
uygulamasına süreli işi tetikleme özelliği ekleyin. b/113360060
Çarpıcı Değişiklikler
- Varsayılan
Worker
veNonBlockingWorker
oluşturucuları kullanımdan kaldırıldı. Lütfen en kısa zamanda yeni oluşturucuya geçin. Gelecekteki sürümler varsayılan oluşturucuyu kaldıracaktır.
27 Ağustos 2018
WorkManager
Hata düzeltmeleriyle birlikte WorkManager 1.0.0-alpha08
yayınlandı.
Hata Düzeltmeleri
- WorkManager bileşenleri, doğrudan başlatma sırasında tetiklenmemeleri için doğrudan başlatmanın farkında değil olarak etiketlendi. Gelecekte, doğrudan başlatmaya duyarlı bir WorkManager sürümü sunacağız. b/112665532
- Yeniden denenen çalışmanın çalışmamasına neden olan sorun düzeltildi. b/112604021
- Periyodik işlerin tekrar tekrar yürütülmemesi düzeltildi (yukarıdaki sorunla ilgili). b/112859683
- Uygulama işlemi çalışırken uygulanan geri yükleme politikaları.
Data
ürünündeki istisna mesajları, sınırın 10 KB olduğunu belirtecek şekilde düzeltildi.JobScheduler
işleminin tamamlanmasındaki bazı gecikmeleri hesaba katmak içinConfiguration.setMaxSchedulerLimit(int)
olan maksimum değer 50'ye düşürüldü. b/112817355
16 Ağustos 2018
WorkManager
Hata düzeltmeleri ve küçük API değişiklikleriyle birlikte WorkManager 1.0.0-alpha07
yayınlandı.
Hata Düzeltmeleri
- Sınırsız sayıda sonuç döndürebilecek negatif sınırlara sahip olası bir SQL sorgusu düzeltildi.
- Yürütme işlemi tamamlanmışsa bu çalışmanın diğer Planlayıcılardaki beklemedeki tüm kopyaları artık doğru bir şekilde iptal edilir. Bu durum,
JobScheduler
iş sınırının aşılmasına neden oldu. b/111569265 ConstraintTracker
içindeki birConcurrentModificationException
düzeltildi. b/112272753Data.getBooleanArray(String)
veData.getIntArray(String)
dönüş türü ek açıklamaları@NonNull
yerine@Nullable
olarak değiştirildi. b/112275229
API Değişiklikleri
Worker
,NonBlockingWorker
adlı yeni sınıfın kapsamını genişletiyor. Bu durum mevcut kullanımı etkilemez.NonBlockingWorker
gelecekte özel ileti dizisi çözümleri için tam olarak desteklenen bir varlık olacaktır.Data.getBooleanArray(String)
veData.getIntArray(String)
dönüş 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
gezinme sürümü, hata düzeltmeleriyle birlikte yayınlandı.
Hata Düzeltmeleri
- Hatalı geri yığın davranışına neden olan bir hatayı düzeltin. b/111907708
- Oluşturulan Args sınıflarından
equals()
tanesinde bir hata düzeltildi. b/111450897 - Güvenli Bağımsız Değişkenler'deki bir derleme hatasını düzeltin. b/109409713
- Kaynak tanımlayıcılardan Java adlarına dönüşümü düzeltme b/111602491
- Güvenli Bağımsız Değişkenler eklentisinde boş değer atanması ile ilgili hata mesajlarını düzeltin.
- Eksik null değer ek açıklamalarını ekleyin.
6 Ağustos 2018
Yaşam Döngüsü, Oda ve Sayfalama sürümünün AndroidX sürümleri 2.0.0-rc01
. 2.0.0-beta01
tarihinden itibaren tüm yapılar değiştirilmez.
1 Ağustos 2018
WorkManager
Hata düzeltmeleriyle birlikte WorkManager 1.0.0-alpha06
yayınlandı.
Hata Düzeltmeleri
- İşleri planlarken veritabanı kilidinin oluşmasını önleyin. b/111801342
- Doz modundayken
PeriodicWork
uygulamasının planlanan şekilde çalışmamasına neden olan bir hata düzeltildi. b/111469837 WorkManager
kilitlenmesine neden olan kısıtlamaları takip ederken yarış durumunu düzeltin. googlecodelabs/android-workmanager/issues/56WorkRequest.Builder#build()
kullanırken benzersizWorkRequest
oluşturun. b/111408337RescheduleReceiver
kullanımını yalnızca gerekenWorkRequest
olduğunda etkinleştirin. b/111765853
24 Temmuz 2018
WorkManager
Önemli hata düzeltmeleri ve günlük kaydı değişikliklerinin yer aldığı WorkManager 1.0.0-alpha05
yayınlandı.
API Değişiklikleri
WorkManager.getInstance()
için artık@Nullable
yerine@NonNull
ek açıklaması bulunuyor. Bunun yerine, manuel başlatma sırasında singleton düzgün bir şekilde başlatılmazsa yöntem birIllegalStateException
atar. Bu, ihlal ediyor olabilir.- WorkManager ayrıntısını kontrol edebilen yeni bir API (
Configuration.Builder.setMinimumLoggingLevel(int)
) eklendi. Varsayılan olarak, WorkManagerLog.INFO
ve sonraki sürümleri günlüğe kaydeder. Data.getString()
imzası, artık varsayılan değeri kullanmayacak şekilde değiştirildi (dolaylı olaraknull
). Bu, API'de zarar veren bir değişikliktir.- Bazı yöntemler yalnızca dahili kullanım için gerekli olan yöntemler
@hide
olarak işaretlendi. Bu,Constraints
oluşturucuyu,Data.toByteArray()
veData.fromByteArray(byte[])
'yi içerir. Bu, API'de zarar veren bir değişikliktir.
Hata Düzeltmeleri
- WorkManager, bilinen otomatik yedekleme durumları sırasında artık iş yürütmez. Bu durum kilitlenmeye neden olmuş olabilir. b/110564377
JobScheduler
kullanılırkenPeriodicWorkRequest
sn. için çift zaman planlaması düzeltildi. b/110798652- Cihaz dozundan sonra
PeriodicWorkRequest
öğelerinin doğru şekilde çalışmamasıyla ilgili sorun düzeltildi. b/111469837 - Firebase JobDispatcher kullanılırken yaşanan ilk gecikmelerle ilgili sorun düzeltildi. b/111141023
- Olası bazı yarış koşulları ve zamanlama sorunları giderildi.
- Artık ihtiyaç duyulmayan
BroadcastReceiver
öğeleri doğru şekilde yer açtı. - Uygulamalar zorla kapatıldıktan sonra yeniden başlatıldığında yeniden planlama performansı optimize edildi.
- Belirtilen
WorkRequest
öğesi sıraya alınmadan önce veya sıraya alındıktan sonraTestScheduler.setAllConstraintsMet(UUID)
öğesinin çağrılmasına izin verildi. b/111238024
Çarpıcı Değişiklikler
WorkManager.getInstance()
için artık@Nullable
yerine@NonNull
ek açıklaması bulunuyor.Data.getString()
imzası, artık varsayılan değeri kullanmayacak şekilde değiştirildi (dolaylı olaraknull
).- Bazı yöntemler yalnızca dahili kullanım için gerekli olan yöntemler
@hide
olarak işaretlendi. Bu,Constraints
oluşturucuyu,Data.toByteArray()
veData.fromByteArray(byte[])
'yi içerir.
19 Temmuz 2018
Navigasyon
1.0.0-alpha04
gezinmesi ve ilişkili Güvenli Bağımsız değişkenler gradle eklentisi bir dizi API değişikliği, davranış değişikliği ve hata düzeltmesi içerir.
API / Davranış Değişiklikleri
- NavHostFragment, mevcut Fragment'ı her zaman birincil gezinme parçası olarak ayarlar ve alt parça yöneticilerinin, dış NavController'ın popülaritesi başlatılmadan (b/111345778) önce yerleştirilmesini sağlar.
Güvenli Bağımsız Değişkenler
- Zarar Veren Değişiklik:
app:type
, ConstraintLayout 2.0.0-alpha1 b/111110548 gibi diğer kitaplıklarla çakışma olmaması içinapp:argType
olarak değiştirildi - Güvenli Bağımsız değişkenlerdeki hata mesajları artık tıklanabilir b/111534438
- Bağımsız değişkenler sınıfları artık
NonNull
özelliklerinin aslında null (b/111451769) olmadığını doğruluyor - NavDirections ve Bağımsız değişkenler tarafından oluşturulan b/111455455 b/111455456 sınıflarına ek
NonNull
ek açıklamaları eklendi
Hata Düzeltmeleri
- Parça hedefine b/111515685 derin bağlantı oluşturulduktan sonra sistem geri düğmesiyle ilgili sorun düzeltildi
12 Temmuz 2018
Navigasyon
1.0.0-alpha03
gezinmesi ve ilişkili Güvenli Bağımsız değişkenler gradle eklentisi bir dizi API değişikliği, davranış değişikliği ve hata düzeltmesi içerir.
API / Davranış Değişiklikleri
- Araç Çubuğu için bir 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ığınında olmadığında false (b/110893637) döndürüyor
- FragmentNavigator, FragmentManager durumu kaydettikten sonra gezinme işlemlerini yoksayar ve b/110987825 ile "onSaveInstanceState sonrası bu işlem gerçekleştirilemez" istisnalarından kaçınır
Güvenli Bağımsız Değişkenler
- Kırılma Değişikliği: İlgili NavDirections yöntem adlarında alfasayısal olmayan karakterler ve bağımsız değişken adları, büyük/küçük harf kullanımıyla değiştirilir.
- Ör.
DemoController.index
,setDemoControllerIndex
b/79995048 olacak - Ör.
action_show_settings
,actionShowSettings
b/79642240 olacak
- Ör.
- Zarar Veren 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 null değerlere izin vermek için
app:nullable="true"
b/79642307 ifadesini ekleyin. - Artık
app:type="long"
öğesini "123L" b/79563966 biçiminde defaultValues ile kullanabilirsiniz - Ayrıştırılabilir bağımsız değişkenler artık
app:type
için tam nitelikli sınıf adı kullanılarak desteklenmektedir. Desteklenen tek varsayılan değer"@null"
b/79563966 şeklindedir - Bağımsız değişkenler sınıfları artık
equals()
vehashCode()
b/79642246 uygulamalarını uyguluyor - Safe Args eklentisi artık kitaplık projelerine (b/80036553) uygulanabilir
- Safe Args eklentisi, artık b/110011752 özellik projelerine uygulanabilir
Hata Düzeltmeleri
- Parça yaşam döngüsü yöntemlerinde gezinirken yaşanan sorunlar b/109916080
- İç içe yerleştirilmiş grafiklerde birden çok kez gezinirken karşılaşılan sorunlar b/110178671
- b/109909461 grafiğindeki ilk hedefle
setPopUpTo
kullanıldığında karşılaşılan sorunlar düzeltildi - Tüm
app:defaultValue
değerlerinin Dize b/110710788 olarak iletilmesine neden olan sorun düzeltildi - Android Gradle Eklentisi 3.2 Beta 01 ile paket halinde sunulan aapt2 artık Gezinme 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ünün AndroidX sürümleri 2.0.0-beta01
.
Yaşam döngüsü
Hata Düzeltmeleri
- Alt arayüzleri değil, yalnızca uygulamaları saklayan LifecycleObserver ProGuard kuralı düzeltildi b/71389427
- Kod karartmaya ve daraltmaya izin veren ViewModel koruma kuralları düzeltildi
Room
API / Davranış Değişiklikleri
- Sorguların çalıştırıldığı yerin ö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ı bulunamıyor" bölümünde sınıf/alan adını belirtin hata b/73334503
- RoomOpenHelper'ın, Oda b/110197391'in eski sürümleriyle geriye dönük uyumluluğu düzeltildi
Sayfalama
Hata Düzeltmeleri
- Bazı başa ekleme durumlarında kaybolan içerik düzeltildi (yer tutucular devre dışı, PositionalDataSource) b/80149146
- (
1.0.1
sürümünde kullanıma sunuldu)PagedListAdapter
veAsyncPagedListDiffer
adlı uygulamanın, taşıma etkinliklerini bildiremediği kilitlenmeler düzeltildi. b/110711937
26 Haziran 2018
Sayfalama
1.0.1
sayfası, runtime
sisteminde tek bir hata düzeltmesiyle yayınlandı. Kararlılık için 1.0.1
kullanmanızı önemle tavsiye ederiz. Sayfalandırma RxJava2 1.0.1
de yayınlandı ve 1.0.0-rc1
ile aynı.
Hata Düzeltmeleri
PagedListAdapter
veAsyncPagedListDiffer
adlı kullanıcıların, taşıma etkinliklerini işaret edemediği kilitlenmeler düzeltildi. b/110711937
WorkManager
WorkManager 1.0.0-alpha04
yayınlandı.
Hata Düzeltmeleri
AlarmManager
tabanlı uygulama kullanılırkenPeriodicWorkRequest
'ler artık doğru şekilde yeniden planlandı.Zorla durdurma veya yeniden başlatma sonrasında tüm çalışanlar yeniden planlanırken yaşanabilecek 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 ortaya çıkan yakalanmamış istisnaları günlüğe kaydedin. b/109900862
WorkManager'ın eski bir sürümüne geri dönmeye karar vermeniz ihtimaline karşı yıkıcı veritabanı taşıma işlemlerine izin verilir. b/74633270
Yinelenen örtülü etiketler oluşturulurken meydana gelen taşıma kilitlenmeleri düzeltildi. Bu, yalnızca aynı örtülü etiket biçimini kullandıysanız oluşan çok nadir bir sorundur.
19 Haziran 2018
Room
1.1.1
adlı odanın rezervasyonu iptal edildi. Bu sürüm, 1.1.1-rc1
adlı Oda ile aynı.
WorkManager
WorkManager 1.0.0-alpha03
yayınlandı.
Hata Düzeltmeleri
AlarmManager
tabanlı uygulamadaki bir yarış durumu düzeltildi. b/80346526.Cihaz yeniden başlatıldıktan sonra
JobScheduler
kullanılırken yinelenen işler düzeltildi.İçerik URI tetikleyicisi olan işler artık yeniden başlatmalar boyunca devam ediyor. b/80234744
Doküman 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()
ürününün eşzamanlı sürümü olangetStatusesSync()
eklendi.Worker
, kullanıcı tarafından başlatılan iptal ile geçici olarak işletim sistemi tarafından istenen durdurmayı birbirinden ayırt edebilir. Herhangi bir durdurma istendiyseWorker.isStopped()
,true
değerini döndürür.Worker.isCancelled()
, çalışma açıkça iptal edildiğindetrue
değerini döndürür. b/79632247API 28'de jobParameters#getNetwork() için destek ekleyin. Bu içerik,
Worker.getNetwork()
aracılığıyla kullanıma sunuldu.JobScheduler
veyaAlarmManager
ürününe gönderilebilecek iş sayısını zorunlu kılabilmeniz içinConfiguration.Builder.setMaxSchedulerLimit(int maxSchedulerLimit)
eklendi. Bu,WorkManager
adlı kullanıcının mevcutJobScheduler
slotlarınızın tamamını kullanmasını önlemeye yardımcı olur.WorkManager
tarafından kullanılması güvenli olanJobScheduler
iş kimliği aralığının 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
öğelerini sıraya eklemenize olanak tanır. b/79600647WorkManager.cancelAllWork()
tümWorker
öğelerini iptal eder.WorkManager
yöntemini kullanan kitaplıklar, dahili durumun ek temizlenmesi 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,Worker
için tam nitelikli sınıf adı olan örtülü bir etiket eklendi. Bu sayede,tag
olmadan veyaid
kullanılamadığındaWorkRequest
öğeleri kaldırılabilir. b/109572351
Çarpıcı Değişiklikler
Worker.WorkerResult
adlı dosyaWorker.Result
olarak yeniden adlandırıldı.Worker.onStopped
, artıkWorker
açıkça iptal edildiğindetrue
olarak ayarlanmış ek birisCancelled
parametresine sahip.
7 Haziran 2018
1.0.0-alpha02
navigasyonu 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 URLDecode bağımsız değişkenlerinin kodunu çözer. b/79982454
Hata Düzeltmeleri
Parça yaşam döngüsü yöntemlerinden gezinme çağrısı yapılırken
IllegalStateException
düzeltildi. b/79632233Animasyonlar kullanılırken oluşan titremelerin düzeltilmesi için artık Destek Kitaplığı 27.1.1 sürümü kullanılmalıdır. b/80160903
defaultNavHost="true" kullanılırken
IllegalArgumentException
sorunu düzeltildi bunu kullanabilirsiniz. b/79656847NavDeepLinkBuilder kullanılırken
StackOverflowError
sorunu düzeltildi. b/109653065İç içe yerleştirilmiş grafiğe geri dönerken yaşanan
IllegalArgumentException
sorunu düzeltildi. b/80453447launchSingleTop
kullanılırken çakışan Parçalarla ilgili bir sorun düzeltildi. b/79407969Gezinme artık iç içe yerleştirilmiş grafikler için doğru sentetik arka yığını oluşturuyor. b/79734195
NavigationUI, iç içe yerleştirilmiş grafiği
MenuItem
olarak kullanırken artık doğru öğeyi vurgular. b/109675998
API Değişiklikleri
NavOptions
ürününde işlemler içinclearTask
özelliği ve ilişkili API kullanımdan kaldırıldı. b/80338878NavOptions
ürününde işlemler içinlaunchDocument
özelliği ve ilişkili API kullanımdan kaldırıldı. b/109806636
24 Mayıs 2018
WorkManager 1.0.0-alpha02
yayınlandı.
WorkManager
Hata Düzeltmeleri
State.isFinished()
için birNullPointerException
düzeltildi. b/79550068Worker
işlemlerininApplication.onCreate()
tarihinde yeniden planlanmasına neden olan sorun düzeltildi. b/79660657İşletim sisteminin izin verdiğinden daha fazla iş planlamanıza neden olan sorun düzeltildi. b/79497378
Worker
ile ilişkili uyanık kalma kilitlerinin temizlenmesi arka plan iş parçacığına taşındı.AlarmManager
uygulaması, beklemedeki tüm işler tamamlandığında artık doğru şekilde temizleniyor.İngilizce dışındaki yerel ayarları etkileyen SQL sorgularının temizlenmesi sorunu düzeltildi. b/80065360
Data
alan adındakifloat
desteği 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
öğeleri, durdurulmalarına tepki verebilir.Worker.isStopped()
, birWorker
cihazının durdurulup durdurulmadığını kontrol etmek için kullanılabilir.Worker.onStopped()
, basit temizleme işlemleri gerçekleştirmek için kullanılabilir.Worker.getTags()
API'si,Worker
ile ilişkili etiketlerinSet
değerini döndürür.Süre ve
TimeUnit
sn. kombinasyonundan oluşan API'ler içinjavax.time.Duration
aşırı yüklemeleri eklendi. Bu,@RequiresApi(26)
tarafından korunuyor.WorkManager
uzantı,androidx.work.ktx
paketindenandroidx.work
paketine taşındı. Eski uzantılar artık kullanılmıyor 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
odasının çağrıları iptal edildi. Son derece
taşıma işlemini kullanıyorsanız 1.1.0
yerine 1.1.1-rc1
Odasının kullanılmasını öneririz.
Room
Odanın, taşıma sonrası başlatma işlemini düzgün şekilde yapmamasına neden olan hata düzeltildi b/79362399
Sayfalama
rxjava2
sayfası, ilk günden itibaren değişiklik yapılmadan adayı serbest bırakmaya taşınıyor
alfa
8 Mayıs 2018
Sayfa 1.0, Gezinme ve WorkManager Alfa Uygulamaları, Oda 1.1, AndroidX
1.0.0
ve Oda 1.1.0
çağrısı iptal edildi.
iki yeni Mimari Bileşeni olan Gezinme ve WorkManager için alfa sürümleriyle birlikte.
Son sürüm adaylarından bu yana sayfada ve Odada değişiklik yok.
Yeni Kitaplık: Gezinme
Gezinme, uygulama içi reklamlar oluşturmak için bir çerçeve sunar.
yardımcı olabilir. Bu ilk sürüm 1.0.0-alpha01
.
Yeni Kitaplık: WorkManager
WorkManager planlama ve yürütme sürecini basitleştirir
garantili, kısıta duyarlı arka plan çalışmasıdır. Bu ilk sürüm
1.0.0-alpha01
AndroidX
Mimari bileşenler, güncellenmiş cihazlar da dahil olmak üzere AndroidX'in bir parçası olacak şekilde taşınıyor.
paket adları, yapı adları ve diğer AndroidX kitaplıklarındaki bağımlılıkları kontrol edin.
Bunlar, diğer2.0.0-alpha1
AndroidX kitaplıkları.
Kotlin Uzantıları
ViewModel, ReactiveStreams ve Sqlite (eski adıyla Odanın "Veritabanı" bileşeni) tümü AndroidX alfa sürümü kapsamında Kotlin uzantı kitaplıkları ekleyin. İçinde Ayrıca, Gezinme ve WorkManager, -ktx modüllerini içerir. Bunların her biri uzantı modüllerini bileşen ekleme bölümünde bulabilirsiniz.
2 Mayıs 2018
- Oda 1.1.0 Sürüm 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
Sayfalama Sürüm Adayı
1.0.0-rc1
ve 1.1.0-beta3
adlı oda serbest bırakıldı.
Sayfalama
1.0.0
sürümünde notlandırma. 1.0.0-rc1
ve
savaşı test etmemize yardım edin. Böylece sağlam bir 1.0.0
gönderebiliriz.
Bu sürümde değişiklik yoktur. 1.0.0-beta1
ile aynı.
Room
Hata Düzeltmeleri
- Kotlin POJO, şuna sahip bir ilişki varlığına referans verdiğinde derleme hatasını düzeltin: Java'da b/78199923'te tanımlandı
5 Nisan 2018
1.1.0-beta2
adlı oda, 1.0.0-beta1
Çağrısı ve Paging RxJava 1.0.0-alpha1
serbest bırakıldı.
Sayfalama, adayı serbest bırakmaya geçmeden önce kısa bir süre için beta sürümünde olacaktır.
Paging 1.0
için daha fazla API değişikliği planlamıyoruz ve API değişiklikleri için çıta çok yüksek.
Sayfalandırma için Alpha RxJava2 desteği isteğe bağlı ayrı bir modül olarak kullanıma sunuldu (android.arch.paging:rxjava2:1.0.0-alpha1
)
ve stabil hale gelene kadar geçici olarak ayrı bir sürüm hazırlanacaktır.
Bu yeni kitaplık, LivePagedListBuilder
işlevine örnek olarak
Executor
yerine Scheduler
saniye süren Observable
ve Flowable
:
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ıyla eklendi.
API Değişiklikleri
Yürütücülerin derleyicilerdeki rolünü netleştirmek için yapılan 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
klasöründe).
PagedList.mCallbacks
üyenin gizli olduğu düzeltildi.
Hata Düzeltmeleri
LivePagedListBuilder
, belirtilen yürütücüde ilkPagedList
yüklemesini tetikler. tercih edebilirsiniz.Dahili
DataSource
sarmalayıcılarındaki geçersiz kılma davranışı düzeltildi (DataSource.map
, ayrıca yer tutucu devre dışıPositionalDataSource
yükleme) b/77237534
Room
Hata Düzeltmeleri
Room'un Rx
Single
veMaybe
uygulamalarında sorguyu önceden geri dönüştürür ve gözlemciyi, döndürülenSingle
veyaMaybe
değerleriyle ilişkilendirebilirsiniz. b/76031240RoomDatabase.clearAllTables, çağrılması durumunda veritabanını
VACUUM
uygulamaz. olabilir. b/77235565
21 Mart 2018
1.1.0-beta1
adlı oda, 1.0.0-alpha7
Çağrısı ve 1.1.1
Yaşam Döngüleri iptal edildi.
Room
API Değişiklikleri
- API İncelemesi geri bildirimine dayanarak
@RawQuery
artık sorgu parametresi olarakString
iletmeyi kabul etmiyor. SupportSQLiteQuery kullanmanız gerekir. (Bağımsız değişken destekli bir SupportSQLiteQuery örneğini kolayca oluşturmak için SimpleSQLiteQuery'ye bakın.) - RoomDatabase.Builder'ın fallbackToDestructiveMigrationFrom yöntemi,
vararg Integer
yerinevararg int
yöntemini kabul ediyor.
Hata Düzeltmeleri
RoomDatabase.clearAllTables artık bir WAL kontrol noktası ayarlayıp
VACUUM
veritabanını ekleyerek işletim sistemine geri alan döndürmeyi deniyor.@RawQuery
,Embedded
alanları veyaRelation
'leri aracılığıyla bir veya daha fazla varlığa referans verdiği süreceobservedEntities
mülkü için artık tüm Pojo'ları kabul eder. b/74041772Sayfalandırma: Odanın DataSource uygulaması artık birden çok tablo içeren bağımlılıkları (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
Yalnızca bir küçük değişiklik: android.arch.core.util.Function
, arch:runtime
yerine arch:common
taşındı. Böylece, çalışma zamanı bağımlılığı olmadan (ör. aşağıdaki paging:common
bölümünde bulabilirsiniz.
lifecycle:common
, lifecycle:runtime
ürününün bir bağımlılığıdır. Dolayısıyla bu değişiklik, doğrudan lifecycle:runtime
ürününü etkilemez, yalnızca sayfalandırmanın yaptığı gibi doğrudan lifecycle:common
uygulamasına bağlı olan modülleri etkiler.
Sayfalama
Yaşam Döngüleri 1.1.1
ile birlikte 1.0.0-alpha7
sayfası yayınlandı. Alfa7 sayfası, 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.
Sayfalandırmanın beta sürümü kullanıma sunulmadan önce, alpha7
sayfalamanın son sürüm olarak sunulması planlanıyor.
API Değişiklikleri
DataSource.LoadParams
nesne artık genel oluşturucuya sahip veDataSource.LoadCallback
nesne artık soyut. Bu, birDataSource
öğesinin sarmalanmasına veya birDataSource
öğesini sahte bir geri çağırma ile doğrudan test etmenize olanak tanır. b/72600421- DataSource ve DataSource.Factory Haritacılar
map(Function<IN,OUT>)
,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.)
PagedList#getDataSource()
, kolaylık yöntemi olarak eklendi b/72611341recyclerview.extensions
paketi veLivePagedListProvider
kalıntıları da dahil olmak üzere, desteği sonlandırılmış tüm sınıflar API'den kaldırıldı.- Harita işlevini etkinleştirmek için
DataSource.Factory
, arayüzden soyut sınıfa değiştirildi.
Hata Düzeltmeleri
- İnşaatçılar nihai olarak değiştirildi. b/70848565
- Oda
DataSource
uygulaması, birden çok tablolu sorguları işleyecek şekilde düzeltildi. Bu düzeltme Oda 1.1.0-beta1'de bulunmaktadır (yukarıya bakın). - Yer tutucuların etkin olması ve
PositionalDataSource
içinBoundaryCallback.onItemAtEndLoaded
çağrılmasını engelleyen bir hata düzeltildi. toplam boyut, sayfa boyutunun tam katıdır.
2 Mart 2018
1.1.0-alpha3
adlı odanın rezervasyonu iptal edildi. Bu, geliştirme ekibi tarafından planlanan
1.1.0
adlı oda.
API Değişiklikleri
GeçersizationTracker
addObserver
veremoveObserver
yöntemleri artık eşzamanlıdır ve kullanıcı arayüzü olmayan bir iş parçacığında çağrılması gerekir. Bu, masaları gözlemlerken ortaya çıkabilecek bazı yarış koşullarını önler.RoomDatabase'de yeni bir
clearAllTables()
yöntemi bulunuyor tüm tablo içeriklerini kısaltacak bir sınıf oluşturun. b/63807999SupportSQLiteQuery
artık sayıyı döndüren birgetArgCount()
yöntemine sahip olabilir. b/67038952
Hata Düzeltmeleri
@RawQuery
artık Sayfalama sorguları için düzgün şekilde desteklenmektedir. b/72600425Oda, oluşturulan
Dao
sınıfı artık düzgün şekilde adlandırarak 2 veya daha fazlaDao
arayüzü aynı pakette bulunan iç sınıftır ve aynı ada sahip olmalıdır. b/73536380Pojo
içindeki genel alan türleri, genişletmenin üyesi olarak düzgün bir şekilde ayrıştırılır sınıfını kullanır. b/73534868Dao
arayüzlerinde bağımlılıktan devralınan sorgu parametreleri yapıları artık düzgün bir şekilde ayrıştırılmaktadır. b/68118746@Relation
öğeleri için oluşturulan sorgular artık alan adlarından düzgün şekilde çıkış yapıyor. b/70925483
27 Şubat 2018
Sayfa 1.0.0-alpha6
, Destek Kitaplığı 27.1.0 sürümüyle birlikte kullanıma sunuldu.
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 Sayfalar Kitaplığı'ndan doğrudan Recyclerview'a taşındı. Sayfalandırmanın bu alfa sürümü, muhtemelen API'yi bozan önemli değişikliklerin yapıldığı 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 sürümüne taşındı:
ListAdapterHelper
->AsyncListDiffer
ListAdapterConfig
->AsyncDifferConfig
DiffCallback
->DiffUtil.ItemCallback
- Sayfalara ayırma çalışma zamanı içinde yeniden adlandırılan sınıflar:
PagedListAdapterHelper
->AsyncPagedListDiffer
Taşınan sınıflar, Sayfalama Kitaplığı'ndan bağımsız olarak RecyclerView ile birlikte kullanışlıydı. Yani, Sayfalandırma alfa sürümüne bağlı olmadan kullanılabilirler. Ancak, Sayfalama kullanan uygulamaların da aynı anda Alfa 6 ve Destek Kitaplığı 27.1.0 sürümüne geçmesi gerektiği anlamına gelir.
** Paging Alpha6 için taşıma kılavuzu: **
- Sayfalama ve geri dönüşüm bağımlılarını
android.arch.paging:runtime:1.0.0-alpha6
vecom.android.support:recyclerview-v7:27.1.0
olarak güncelle- ListAdapter, Paging'den RecyclerView'a taşındığı için bunların eş zamanlı olarak yapılması gerekir
ListAdapterHelper
referanslarınıAsyncListDiffer
olarak güncelleyin- Daha açık ifadelerin yer aldığı
getCurrentList().getItem(index)
vegetCurrentList().size()
yöntemlerinin kullanılması amacıylagetItem(index)
/getItemCount()
kaldırıldı.
- Daha açık ifadelerin yer aldığı
ListAdapterConfig
referanslarınıAsyncDifferConfig
olarak güncelleyinDiffCallback
referanslarınıDiffUtil.IttemCallback
olarak güncelleyinPagedListAdapterHelper
referanslarınıAsyncPagedListDiffer
olarak güncelleyinsetList()
referanslarınısubmitList()
olarak güncelle- liste farklılaştırmanın eş zamansız doğasını netleştirmek amacıyla yeniden adlandırıldı
Hata Düzeltmeleri
- Yer tutucular olduğunda yanlış başlangıç konumunun ilk yüklemeye geçirilmesi sorunu düzeltildi devre dışı bırakılır. b/73513780
15 Şubat 2018
1.1.0-alpha2
adlı odanın rezervasyonu iptal edildi.
Yeni Özellikler
Oda, artık veritabanının ileriye yazma günlük kaydı modunda açılmasını destekliyor. Yazmalarınız bu modda artık okuma sorgularınızı engellemez. Her ne kadar daha fazla bellek kullanır (birden çok bağlantı nedeniyle). Bu mod genellikle daha hızlı. Cihaz
API 16
veya daha üst bir boyuta sahipse Oda varsayılan olarak WAL kullanır ve , düşük bellek kapasiteli bir cihaz değildir. Bu davranışı,RoomDatabase.Builder
üzerindesetJournalMode()
yöntemi. b/67757002Guava Desteği: Oda artık Guava'nın geri alınmasını destekliyor
DAO
sorgularındaOptional<T>
veyaListenableFuture<T>
.ListenableFuture<T>
özelliğini kullanmak için Odadanguava
yapıyı içe aktarmanız gerekiyor (android.arch.persistence.room:guava:1.1.0-alpha2
).Oda,
DAO
sorgudanjava.util.Optional<T>
döndürmeyi destekliyor.Varsayılan uygulamalara sahip arayüz yöntemleri artık
DAO
sınıfta@Transaction
yöntem. Bu hemJava 8
hem de kullanılabilecekKotlin
. b/72416735
Hata Düzeltmeleri
Bir derleme hatası olması durumunda
@Relation
kullanan oluşturucular, derleme hatasına neden olmaz. başka bir oluşturucusu vardır. b/72884434@Query
yöntemlerinde'
ile çıkış yapılan tablo adları artık düzgün bir şekilde kod dışına alınıyor kullanın. b/72366965Odada artık sınıf yapısını okumak için Kotlin
@Metadata
ek açıklamaları kullanılıyor bazı ek açıklamalarla karşılaşabilirsiniz. Bu, pojonun kurucu parametre adları düzgün şekilde okunabilir. b/67181813Eski sürüme geçme taşıma yollarını bulmayla ilgili sorun düzeltildi. b/72153525
Varsayılan olmayan sütun türleri artık Mevcut veritabanını Odaya aktarır. 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
odası ve 1.0.0-alpha5
numaralı çağrı iptal edildi.
Yaşam döngüsü 1.1.0
Paketleme Değişiklikleri
Yeni ve çok daha küçük bağımlılıklar artık mevcut:
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
artık kaldırıldı. Lütfen şunu kullanın:FragmentActivity
,AppCompatActivity
veyaFragment
desteği. ViewModelProviders
veViewModelStores
etiketlerine@NonNull
ek açıklama eklendiViewModelProviders
oluşturucu desteği sonlandırıldı. Lütfen statik yöntemlerini doğrudan kullanınViewModelProviders.DefaultFactory
desteği sonlandırıldı, lütfenViewModelProvider.AndroidViewModelFactory
kullanın- Statik
ViewModelProvider.AndroidViewModelFactory.getInstance(Application)
yöntemi, verileri almak için eklendiViewModel
veAndroidViewModel
örnekleri oluşturmaya uygun bir statikFactory
.
Oda 1.1.0-alfa1
Yeni Özellikler
RawQuery
: Bu yeni API,@Dao
yöntemlerinin SQL'i sorgu parametresi olarak almasına olanak tanır b/62103290, b/71458963fallBackToDestructiveMigrationsFrom
:RoomDatabase.Builder
ürünündeki bu yeni API şunlara olanak tanır: Hangi şema sürümlerindeki yıkıcı taşıma işlemlerinin başlatılacağı konusunda daha ayrıntılı kontrol izin verilir (fallbackToDestructiveMigration ile karşılaştırıldığında) b/64989640- Oda artık yalnızca daha yeni Paging API'lerini (alfa-4+) destekliyor.
LivePagedListProvider
Yeni Oda alfa sürümünü kullanmak için sayfalama özelliğini kullanmanız gerekiralpha-4
veya daha yüksek ve henüz yapmadıysanızLivePagedListProvider
değerindenLivePagedListBuilder
değerine geçiş yapın.
Hata Düzeltmeleri
- Kotlin Kapt türleri için iyileştirilmiş destek. b/69164099
- Alanların sırası artık şemayı geçersiz kılmaz. b/64290754
Sayfalama 1.0.0-alfa5
Hata Düzeltmeleri
- Yer tutucular devre dışı bırakıldığında sayfa yüklemeyi düzeltme b/70573345
- Yasa Dışı ArgumentException hatasının (b/70360195) izlenmesi için ek günlük kaydı (ve oda tarafında tahmine dayalı düzeltme)
- Javadoc örnek kod düzeltmeleri b/70411933, b/71467637
11 Aralık 2017
alpha4-1
sayfası serbest bırakıldı. Bu, Paging alfa 4 için küçük bir hata düzeltme sürümüdür.
Hata Düzeltmeleri
- Geri çağırma parametrelerinde geçersiz veri kaynaklarını kontrol etmeyin. b/70353706 b/70360195
7 Aralık 2017
Çoğunlukla önemli değişiklik ve eklemelerle alpha4
sayfası kullanıma sunuldu.
ve ağ + veritabanı kullanım
örneklerini içerir.
API Değişiklikleri
DataSource
artık doğrudan ağdan sayfalandırmayı kolaylaştırmak için eşzamansız bir API'dir:- İlk boyut ve veriler için tek giriş noktası
- Geri çağırmayı basılı tutarak ve daha sonra göndererek ağın yeniden denemesini destekler
- Threadsafe geri çağırmalar, tek ağ oluşturmak için eşzamansız yüklemeye olanak tanır
kullanıcı arayüzü ileti dizisinde
PagedList
yedeklendi. - İlk yükleme parametreleriyle ilgili daha açık hata davranışı
TiledDataSource
, şu değeri yansıtacak şekildePositionalDataSource
olarak yeniden adlandırıldı: konuma dayalı dizine ekleme ve yer tutucular olduğunda devre dışı bırakıldı.PageKeyedDataSource
, yerleştirilmiş sonraki/önceki jetonları desteklemek için eklendi ağ sayfası yüklenir.KeyedDataSource
, şu şekilde yeniden adlandırıldı:ItemKeyedDataSource
net bir şekilde belirtin.LivePagedListBuilder
veDataSource.Factory
değiştirmeLivePagedListProvider
. Oluşturucu, aynı yapıda birçok başka uzantı ile özelleştirme ve daha basit varsayılan ayarlar. FabrikadaDataSource
nesile izin veriliyor kodundanLiveData
bağımsız kalmaya devam edecektir.Veritabanı ve ağ kullanım alanı için
PagedList.BoundaryCallback
eklendi.PagedList.Builder
oluşturucu şu anDataSource
+PagedList.Config
alıyorLivePagedListBuilder
operatörüne daha benzerdir ve Java dili veya Kotlin'deki türetilmiş türler.PagedList.getConfig()
eklendi vePagedList.Config
artık herkese açık üyeye sahip özellikler.KeyedDataSource.loadBefore()
artık sonuçların geri alınmasını beklemez.PagedListAdapter.onCurrentListChanged()
, ile ilgili güncellemeleri dinlemesi için eklendi PagedList görüntüleniyor.
Hata Düzeltmeleri
- PagedListAdapter (Yardımcı) içindeki IndexOutOfBoundsException sorunu düzeltildi (b/67883658)
1.0.0 - 6 Kasım 2017
Tüm önemli bileşenler (sayfalama hariç) artık 1.0.0
. Bu, tamamen aynı
reactivestreams
kitaplığında yapılan bir değişiklik dışında rc1
olarak yayınla.
Hata Düzeltmeleri
LiveDataReactiveStreams
artık düzgün şekilde uyguluyor Reaktif Akışlar spesifikasyonu. b/67999342
Yayın Adayı - 18 Ekim 2017
Tüm önemli yapılar (sayfalama hariç) artık 1.0.0-rc1
.
1.0.0
sürümü. 1.0.0-rc1
kullanmak için lütfen projelerinizi yükseltin ve bize yardımcı olun
test etmeye karar verdi. 1.0.0
.
Davranış Değişikliği
- Bu sürümle,
Lifecycle.Event#ON_STOP
artık şu durumlarda gönderilir:onSaveInstanceState
adlı kullanıcının adı:CREATED
(ON_STOP
göndermeden) önce. Şurada daha fazla bilgi edinebilirsiniz: Yaşam döngüleri belgeleri.
Hata Düzeltmeleri
Oda:
- Oda artık
OutOfMemory
sorununu düzelten en son harici yapıya bağlıdır sorunlarından bahsedeceğiz. b/62473121 Query
yöntemlerine artık@Transaction
ile not ekleyebilirsiniz. Ayrıntılar için@Transaction
adresindeki referans dokümanlara bakın. b/65112315- Odadaki
StringUtil
sınıf herkesten kaldırıldı API (hiçbir zaman herkese açık bir API olarak tasarlanmamıştır).
- Oda artık
Yaşam döngüleri:
LiveData
, Etkinlik API'de kısmen kapsandığında düzgün şekilde çalışır < 24. b/65665621Üst sınıflarda
OnLifecycleEvent
yöntemleri artık düzgün bir şekilde çağrılıyor veya bu mümkün değilse derleme sırasında uyarı yazdırılır. b/63474615Yaşam döngüsü artık bir
WeakReference
değerini Yaşam Döngüsü Sahibi'ni kullanarak Yaşam döngüsü daha uzun süre bellekte tutulursa LifecycleOwner (Yaşam Döngüsü Sahibi) (bu yalnızca bir önlemdir, aksi takdirde her zaman :Lifecycle
).
9 Ekim 2017
alpha-3
sayfası serbest bırakıldı; Bu nedenle, beta 2
Yaşam Döngüleri ve Odası 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
.
Bu sürümde notlamanın yeni bir sürümü yoktur.
Hata Düzeltmeleri
Yaşam döngüleri:
LiveDataReactiveStreams
artık düzgün bir şekilde kaynak e-posta listesinden çıkıyorLiveData
etkin olmadığında yayıncı yapar. b/62609183- Üst sınıf başka bir modülden olduğunda yaşam döngüsü etkinlikleri üst sınıflara düzgün şekilde aktarılır. b/63474615
- LiveData, abonelikten çıkma işlemi sırasında abonelik oluşturmayı göstereceğim. b/66337741
Java 8 dil yapısı 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 gönderildiğinde bu gerekli değildir)
-keep class * implements android.arch.lifecycle.GeneratedAdapter {<init>(...);}
Oda:
- Oda, derleme sırasında bir hata yazdırıyor. Döndürülen Pojo
@Query
yöntemi,@NonNull
sütunlarından bazılarıdır. Alan@Nullable
ise Yalnızca oda bir uyarı yazdırır. b/67115337 - Oda, yeni işletim sistemi sürümlerindeki dizinleri artık doğruluyor. b/63132683
- Birden fazla öğe varsa varsayılan olarak odanın bağımsız değişkensiz kurucusu seçilir yapıcılarla eşleştirme yaptığını gösterir. b/67353427
- Tek sütunlu birincil anahtarlar
Nullable
olabilirInteger
veyaLong
. b/67086876 - Geçersiz kılma izleyici, test modunda tekrar girişi düzgün bir şekilde gerçekleştirir. b/65471397
- Oda, sütun ve tabloda geçersiz karakter olup olmadığını kontrol ediyor
derleme zamanındaki adlar (geçersiz karakterler:
`
,"
). b/64749111
- Oda, derleme sırasında bir hata yazdırıyor. Döndürülen Pojo
21 Eylül 2017
Bu sürümle birlikte tüm Mimari Bileşenler modülleri en az beta 1
SDK'ya ulaşıyor
(alpha 2
olan yeni Sayfalama Kitaplığı hariç).
Başka API değişikliği planlamıyoruz. Planlanmayan değişiklikler olabilir ancak
API'leri 1.0.0
kararlı sürümden önce değiştirme çubuğu çok yüksek ve bu da düşük bir ihtimaldir.
- Yaşam Döngüsü Etkinliği ve LifecycleFragment,
1.0.0
kararlı sürümden önce kaldırılır. Onlar Destek Kitaplığı26.1.0
veya sonraki sürümleri kullanılırken gerekli değildir.
Alfa aşamasından farklı olarak beta aşamasının çok kısa bir süresi olacak şekilde planlandı.
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üleri (çalışma zamanı, ortak) ve Arch Core (yaygın) değerlerinde değişiklik yok. Bu eserlerin her ikisi de
13 Eylül'den beri
1.0.0
sürümüdür.
Yeni Yapılar
Yaşam döngüleri artık
common-java8
adında yeni bir yapıya sahip. Bu yapı bir DefaultLifecycleObserver adlı yeni bir arayüzü kullanın. hangi tüm yaşam döngüsü yöntemleri için varsayılan uygulamalara sahiptir. Java 8 dili 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ünü. 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 eserlerin her ikisi de zaten Room'a bağımlı olduğundan onları doğrudan kullanmadıysanız derleme dosyalarınızda herhangi bir değişiklik yapmanız gerekmez.
API Değişiklikleri
Oda:
- @ColumnInfo ek açıklaması artık sütunda bir harmanlama ayarlanmasını destekliyor. b/62007004
@ColumnInfo
ile ek açıklama eklenmedikleri sürecetransient
alanları artık varsayılan olarak yoksayılıyor.@Embedded
veya@Relation
. b/62600692- Birincil Anahtarlar, otomatik olarak oluşturulmadıkça
@NonNull
ile ek açıklama içermelidir. b/64292391- Bu değişiklik için şema taşıma işlemi gerekebilir. Bu durumun neden olduğu rahatsızlıktan dolayı özür dileriz.
- Yeni bir kolaylık ek açıklaması (@Transaction) eklendi
bir
DAO
yöntemini geçersiz kılar ve bir işlem içinde çalıştırır.
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çıklamaları içeren geliştirilmiş Sayfalama dokümanları.
Hata Düzeltmeleri
- Oda:
@Query
yöntemlerindeki çok satırlı Kotlin dizeleri düzgün bir şekilde işleniyor. b/65809374
- Sayfalama:
- Sayfalandırma yapısı artık Jamboard'a 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 altyapı çekirdeğinin (yaygın) olduğu ana sürümdür
1.0.0
kararlı sürümüne ulaşın.
Bu değişiklikle birlikte, Destek Kitaplığı 26.1.0 artık bu kitaplıklara ihtiyaç duyuyor. Hem AppCompatActivity hem de Destek Parçası LifecycleOwner arayüzünü uygulayın.
Bu sürüm, yeni entegrasyondan yararlanmak için Destek Kitaplığı 26.1.0
sürümüne de ihtiyaç duyar.
Yeni Kitaplık: Sayfalama
Bu sürüm, Paging adlı yeni bir kitaplık da içerir. Bu kitaplık, büyük boyutlu
veri kümelerini parçalar halinde parçalara ayırarak bir RecyclerView'a dönüştürün. Çağrı, alpha1
olarak yayınlandı
ve kendi sürüm döngüsü vardır.
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ıflar, artık uygulamanın sınıf yolunda ek açıklamaya sahipse
@Generated
ile ek açıklama olarak gösterilir. 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 olduğunda InvalidationTracker'ın doğru listeyi göndermemesine neden olan hata düzeltildi gözlemlenebilir. 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. Bu hata,
onChanged
yönteminden ilki kaldırıldığında ikinci Observer'ın yoksayılmasıyla ortaya çıktı. b/64285805
1.0.0 Alfa 8 - 1 Ağustos 2017
Davranış Değişiklikleri
- Temel türlerin veya sütunların sütunları için
NOT NULL
kısıtlaması eklendi NonNull ile ek açıklama içerir. Bu, işletmenizin yapısını ve olduğundan, halihazırda Mimari Bileşenler alfa 7 veya önceki sürümleri kullanıyorsanız verileri saklamak istiyorsanız bir taşıma işlemi uygulamanız veya OluşturucudafallbackToDestructiveMigration()
yöntemini kullanın. b/62007004
API Değişiklikleri
- SupportSQLiteProgram özelliği artık AutoCloseable'ın kapsamını genişletiyor. b/63131997
1.0.0 Alfa 7 - 26 Temmuz 2017
Hata düzeltmeleri
LifecycleRegistry
removeObserver
yönteminde, LifecycleObserver okumasını bozan kritik hata düzeltildi.b/63162311 ö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ştirilmiştir. Daha önce gözlemciler her zaman eklendikleri sırayla çağrılıyordu:
observer1
,observer2
tarihinden önce eklenirseobserver2
tarihinden önceON_CREATE
ve diğer tüm etkinlikleri alır. Bu durum, artık yıkım olayları için geçerli değil. Onlar için gözlemciler, toplamanın tersi sırasına göre çağrılıyor. Dolayısıyla şu anki davranış şu şekildedir:observer1
,observer2
tarihinden önce eklenirse önceON_CREATE
, ardındanobserver2
cihazına gönderilir (ON_START
veON_RESUME
için de aynı olur), ancakON_PAUSE
etkinliği önceobserver2
, ardından sadeceobserver1
adlı kişiye gönderilir (ON_STOP
veON_DESTROY
için aynı).observer1
Taşıma işlemi eksikse oda bir istisna oluşturur. Daha önce Room, 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
RoomDatabase.Builder
hedefinefallbackToDestructiveMigration()
yöntemi eklendi Taşıma işlemi eksikse veritabanını temizleyin. b/63872392Mimari bileşenleri artık destek kitaplığı 26.0.0'a bağımlı
Hata düzeltmeleri
@Yerleşik ile iç içe yerleştirilmiş @Relation öğesinin işlenmesi düzeltildi. b/63736065
Otomatik artırımlı birincil anahtara sahip tablolar için test amaçlı taşıma işlemleri düzeltildi. b/63393618
Artık DELETE veya UPDATE sorgularını çalıştıran @Sorgular düzgün şekilde bağımsız değişkenleri alıyor. b/63872538
Artık sahip parçası geri yığında olduğunda ve yapılandırma değişikliği iki kez yapıldığında ViewModels korunur. b/38445801
1.0.0 Alfa 5 - 18 Temmuz 2017
API Değişiklikleri
Bir veritabanının ne zaman oluşturulacağını veya açıldığını gözlemlemek için
RoomDatabase.Builder
işlevine yeni bir geri çağırma yöntemi eklendi. b/62699324@Query artık RxJava
Maybe
veyaSingle
döndürebilir. b/62231019
Odaya RxJava desteği eklemek için android.arch.persistence.room:rxjava2
yapısına güvenmeniz 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öntemlerinde artık farklı öğe türlerinden parametreler bulunabilir. b/62682405
Hata Düzeltmeleri
@Dao
yöntemdebyte[]
işlemlerinin gerçekleştirilmesi düzeltildi. b/62460045Odadaki taşıma kontrolünde artık büyük/küçük harfe duyarlı olmayan karşılaştırma kullanılı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
artık yalnızca 1 etkinlik parametresini destekliyor. Bu, Java 8 desteğinin hazırlık sürecinde yapılan bir değişikliktir. Böylece biz de yeni arayüzler oluşturacağız. Bu değişiklikle ilgili olarak yalnızca@OnLifecycleEvent(ON_ANY)
ek açıklamalı yöntem, ikinci bir tür parametresi alabilirEvent
(ilk parametreLifecycleOwner
). Ayrıntılar için Yaşam döngüsü dokümanlarına göz atın.LifecycleActivity
veLifecycleFragment
sınıflarıandroid.arch.lifecycle:extensions
yapısına taşınır.MigrationTestHelper, Instrumentation örneğini alır. yerine
Context
yerine kullanarak şemayı test öğelerinden okuyabilir ve bağlamayı öğreteceğim.@Insert
,@Delete
ve@Update
ek açıklamaları@DAO
yöntemlerinde artık parametre türü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/62608681Soyut DAO sınıfları artık
@Database
alan bir oluşturucuya sahip olabilir örneğidir. b/38488747DAO
artık tür parametreleriyle bir üst sınıfa/arayüze sahip olabilir. b/62103620
1.0.0 Alfa 2 - 2 Haziran 2017
API Değişiklikleri
GeçersizationTracker geri çağırması, değiştirilen tablo adlarının listesini artık alıyor. (b/38468740)
SupportSQLiteDatabase sınıfının API yüzeyi azaltıldı. (b/38481640)
Hata Düzeltmeleri
- Yaşam döngüsü boyunca ProGuard dosyaları. (b/62113696)
- Tür Dönüştürücülerde veri kaybı. (b/62100716)
@Insert
sorgularındanLong[]
döndürülmesine izin ver.
1.0.0 Alfa 1 - 17 Mayıs 2017
MinSDK: 14
Genel uyarılar
Lansmandan önce çok fazla test yapmış olsak da Mimari Bileşenleri şu anda alfa sürümündedir. Bir ü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ıklardaki hataları ayıklama konusunda rahat değilseniz öncelikle yan projelerde Mimari Bileşenleri denemenizi öneririz.
Herkesin bugün taşınmasını ö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 yaşam döngüsü
Fragment
veActivityCompat
henüzLifecycleOwner
arayüzünü uygulamamaktadır. Mimari Bileşenler 1.0.0 sürümüne ulaştığında bunu yapar.