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
ConcurrentModificationExceptionsorunu 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ığı
LiveDatatanedir. 1.1.1-rc01yerine1.1.1Roombağı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ığınNavigationUIyöntemleriyle kullanıldığında. b/120104424AppBarConfigurationartık yedek ayarlamanıza izin veriyorOnNavigateUpListenernavController.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 öğelerinsetupyöntemleriyle tutarlı olmasını sağlar. Ekle Arka yığının patlamasını önlemek içinMenuItemcihazınızamenuCategory="secondary". aosp/852869- Oluşturulan
ArgssınıflarınınfromBundle()yöntemleri artık boş olmayan bir değer alıyor Null değer atanabilen birBundleyerineBundleaosp/845616
Hata Düzeltmeleri
- Bağımsız değişkenler artık derin bağlantılardan doğru
argTypeolarak 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,ListenableWorkeriç sınıfı olacak. Bu, Kotlin'in üst düzeyResultsı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,ListenableWorkeriç 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,
NavigationUIyöntemlerle kullanıldığında artık otomatik olarakandroid:labeliç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,OnDestinationChangedListenerolarak yeniden adlandırıldı b/118670572OnDestinationChangedListenerartıkBundlebağımsız değişkeni de iletiyor aosp/837142app:clearTaskveapp:launchDocumentözellikleri ve bunlarla ilişkilendirilmiş yöntem kaldırıldı. Aşağıdaki işlemler için grafiğinizin köküyleapp:popUpTokullanın: arka yığınınızdaki tüm hedefleri kaldırın. b/119628354ActivityNavigator.ExtrasartıkBuilderkalıbını kullanıyor ve tümIntent.FLAG_ACTIVITY_işaretlerini ayarla aosp/828140NavController.onHandleDeepLink,handleDeepLinkolarak 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,NavDeepLinkBuilderveAppBarConfiguration,finalyapı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
FragmentNavigatorhizmetine taşındı. Bu sayede kolayca Parça oluşturma yetkisini birFragmentFactorykullanıcısına verin. b/119054429 NavGraphNavigatoroluşturucusu artıkContextkullanmı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ı.Navigatornumaralı telefondannavigate()adlı kuruluşu ara . aosp/830663Navigatorönemli ölçüde yeniden düzenlenerekOnNavigatorNavigatedListenerihtiyacı ortadan kaldırıldınavigatebunun yerine gidilenNavDestinationdeğerini döndürmesini sağlar.Navigatorörnekleri artık pop etkinlikleriniNavControlleröğesine gönderemiyor. DikkatliceOnBackPressedCallbackkullanarak 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ğundapopUpToartık tutarlı şekilde çalışıyor b/116831650 IllegalArgumentExceptionhatası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
@Overrideek 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,RxWorkerile 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-firebaseyapısının artık beta sürümüne geçilmeye başlanmayacağı anlamına gelir. Gelecekte bir alternatif eklemeyi planlıyoruz. Payload,Resultolarak birleştirildi.Resultartı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ıkPayloadyerineResultile 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.ContentUriTriggerssı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,WorkContinuationveOneTimeWorkRequestkapsamı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ı; mevcutcombineyö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.
observeForeveraracı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ındaCANCELLEDStateileWorkInfodöndürecek. nullResultöğeleriniListenableWorkeröğesinde başarısız olarak değerlendir. b/120362353- Bazen
IllegalArgumentExceptionhatası 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-firebaseyapısının artık beta sürümüne geçilmeye başlanmayacağı anlamına gelir. Gelecekte bir alternatif eklemeyi planlıyoruz. Payload,Resultolarak birleştirildi.Resultartı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ıkPayloadyerineResultile 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ı.ContentUriTriggerssınıfı ve buna referans veren yöntemler artık herkese açık olarak kullanılamaz.- API'yi kolaylaştırmak için
WorkManager,WorkContinuationveOneTimeWorkRequestkapsamı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ı; mevcutcombineyö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/@Fts4içindeki FTStokenizerartı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-coroutinesadlı yeni bir yapı yayınlandı. b/69474692 @Insert,@Deleteveya@Updateek açıklamalarıyla eklenen DAO yöntemlerinde artık dönüş türü olarakListenableFuturedesteklemektedir. 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,
INifadesinin bağımsız değişkenleri olarak diğer çeşitliCollectionuygulamaları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 birCoroutineWorkersunuyor.WorkStatus,WorkInfoolarak yeniden adlandırıldı. İlgili tümgetStatusyöntem varyantları ilgiligetWorkInfovaryantı. Bu, zarar veren bir değişikliktir.ListenableWorker.onStopped(),WorkRequestişlevinin iptal edilip edilmediğini temsil eden bir boole bağımsız değişkenini artık kabul etmiyor.WorkManagerartık bu ayrımı yapmıyor. Bu, zarar veren bir değişikliktir.androidx.work.testpaketi,androidx.work.testingpaketi 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.WorkStatusoluş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
@NonNullek açıklaması eklendi. WorkContinuationoluşturmak zorunda kalmadan benzersizOneTimeWorkRequest'leri sıraya almak içinWorkManager.enqueueUniqueWork()API'si ekleyin.WorkManagerüzerindeki tümenqueuevecancelyöntemlerinin varyantları artık yeni birOperationtürü döndürüyor. Bu, zarar veren bir değişikliktir.enqueueöğesinin hiçbir varyantı,WorkRequestiç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
WorkManagerinitializegirişiminde bulunmak artıkIllegalStateExceptionile sonuçlanır. Bu, zarar veren bir değişikliktir.
Hata Düzeltmeleri
work-runtime-ktxyapısındakiWorkRequest.Builderöğeleri artıkListenableWorkerkullanıyor. Düzeltmeler b/117666259PeriodicWorkiç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
WorkConstraintsTrackeroyununda bir yarış durumunu düzeltin. android-workmanager/issues/56 düzeltme
Çağlık API Değişiklikleri
WorkStatus,WorkInfoolarak yeniden adlandırıldı. İlgili tümgetStatusyöntem varyantları ilgiligetWorkInfovaryantı.ListenableWorker.onStopped(),WorkRequestişlevinin iptal edilip edilmediğini temsil eden bir boole bağımsız değişkenini artık kabul etmiyor.WorkManagerartık bu ayrımı yapmıyor.androidx.work.testpaketi,androidx.work.testingpaketi 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ı.WorkStatusoluş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ümenqueuevecancelyöntemlerinin varyantları artık yeni birOperationtürü döndürüyor.enqueueöğesinin hiçbir varyantı,WorkRequestiçin artık değişken kabul etmiyor.- İşlem başına birden çok kez
WorkManagerinitializegirişiminde bulunmak artıkIllegalStateExceptionile 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
@Relationiç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
DAOarayü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-ktxmodülü şu kısma katlandı:navigation-testing artifactve artık yayınlanmayacak.navigation-testingyapı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.Builderiçin Kotlin alternatifi olarakandroidx.paging.Config()eklendiPagedList.Builderiçin Kotlin alternatifi olarakandroidx.paging.PagedList()eklendiLivePagedListBuilderiçin Kotlin alternatifi olarakDataSourceFactory.toLiveData()eklendiRxPagedListBuilderiç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ıkIndexOutOfBoundsExceptionhatası 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
deprecatedyöntemlerinin ve sınıflarının tümü, özellikle de varsayılanWorkeroluş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 olanListenableWorkerolarak 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ızdaListenableFutureuygun şekilde güncellemeniz gerekir.ListenableFuturereferans uygulamaları,alpha02uygulamasındakiFuturespaketinde sağlanmıştır (WorkManagerbö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 üyelerListenableWorkerolarak 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.
WorkerFactoryarayüzü veDefaultWorkerFactorysomut uygulaması,WorkerFactoryadlı 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(),voiddeğ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,Futuresözleşmesi kapsamındadır. - Eşzamanlı
getStatus*yöntemleriyle denkliği korumak içinListenableFuturevaryant sağladık veLiveDatadö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.prodosyaları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
Workeroluşturucusunu korumak için ProGuard yapılandırmaları eklendi. b/116296569 - Çalışmanın
REPLACEgün olduğu bir yarış koşulunda potansiyelNullPointerExceptiondüzeltildi. b/116253486 ve b/116677275 WorkContinuation.combine()artık iki veya daha fazla yerine bir veya daha fazlaWorkContinuationkabul ediyor. b/117266752
Çağlık API Değişiklikleri
- Daha önce
deprecatedyöntemlerinin ve sınıflarının tümü, özellikle de varsayılanWorkeroluşturucusu kaldırıldı. WorkerFactoryarayüzü veDefaultWorkerFactorysomut uygulaması,WorkerFactoryadlı soyut bir sınıfta birleştirildi.WorkManager.synchronous()veWorkContinuation.synchronous()kaldırıldı.WorkManager.getStatus*()yöntemleri artıkListenableFuturedeğeri döndürüyor.WorkManager.getStatus*LiveData(),LiveDatadeğerini döndürür.
Vadeli İşlemler
Vadeli işlemler 1.0.0-alpha02 yayınlandı.
API Değişiklikleri
- Geliştiriciler artık
ListenableFutureile ilgili basit ve somut uygulamalar olarakResolvableFutureveAbstractResolvableFuturekullanabilirler.
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.
@Entityile not eklenen sınıflara artık eşleme tam metin arama tablosu içeren bir sınıfı bildirmek için@Fts3veya@Fts4ile 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,@Embeddedve@Relationoda 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,@Deleteveya@Updateile 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@Relationek 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:@Entityek 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
RoomDatabasekapsamındakimCallbackvemDatabaseartık@Deprecatedve 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ı
varsolarak 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
PositionalDataSourceve 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.
NavigationViewiç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.Extrasparametresini almaktadır. - NavController'ın
getGraph()yöntemi artıkNonNullb/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
LiveDatatekilleştirilmesiyle ilgili olası sorunu düzeltin.
API Değişiklikleri
- Artık
WorkManager.Configurationöğesinin bir parçası olarakWorkerFactorybelirterek çalışma zamanında kendiWorkerörneklerinizi oluşturabilirsiniz. Yedek fabrika, WorkManager'ın önceki sürümlerinin davranışıyla eşleşenDefaultWorkerFactory.WorkerveNonBlockingWorkeriç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
ListenableFutureyapı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ığıylaTestDriveruygulamasına süreli işi tetikleme özelliği ekleyin. b/113360060
Çarpıcı Değişiklikler
- Varsayılan
WorkerveNonBlockingWorkeroluş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.JobScheduleriş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,
JobScheduleriş sınırının aşılmasına neden oldu. b/111569265 ConstraintTrackeriçindeki birConcurrentModificationExceptiondüzeltildi. b/112272753Data.getBooleanArray(String)veData.getIntArray(String)dönüş türü ek açıklamaları@NonNullyerine@Nullableolarak değiştirildi. b/112275229
API Değişiklikleri
Worker,NonBlockingWorkeradlı yeni sınıfın kapsamını genişletiyor. Bu durum mevcut kullanımı etkilemez.NonBlockingWorkergelecekte ö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ı@NonNullyerine@Nullableolarak 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
PeriodicWorkuygulamasının planlanan şekilde çalışmamasına neden olan bir hata düzeltildi. b/111469837 WorkManagerkilitlenmesine neden olan kısıtlamaları takip ederken yarış durumunu düzeltin. googlecodelabs/android-workmanager/issues/56WorkRequest.Builder#build()kullanırken benzersizWorkRequestoluşturun. b/111408337RescheduleReceiverkullanımını yalnızca gerekenWorkRequestolduğ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@Nullableyerine@NonNullek açıklaması bulunuyor. Bunun yerine, manuel başlatma sırasında singleton düzgün bir şekilde başlatılmazsa yöntem birIllegalStateExceptionatar. Bu, ihlal ediyor olabilir.- WorkManager ayrıntısını kontrol edebilen yeni bir API (
Configuration.Builder.setMinimumLoggingLevel(int)) eklendi. Varsayılan olarak, WorkManagerLog.INFOve 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
@hideolarak işaretlendi. Bu,Constraintsoluş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
JobSchedulerkullanılırkenPeriodicWorkRequestsn. 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@Nullableyerine@NonNullek 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
@hideolarak işaretlendi. Bu,Constraintsoluş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:argTypeolarak 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
NonNullek 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,setDemoControllerIndexb/79995048 olacak - Ör.
action_show_settings,actionShowSettingsb/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:typeiç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
setPopUpTokullanıldığında karşılaşılan sorunlar düzeltildi - Tüm
app:defaultValuedeğ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
Observabledesteğ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.1sürümünde kullanıma sunuldu)PagedListAdapterveAsyncPagedListDifferadlı 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
PagedListAdapterveAsyncPagedListDifferadlı 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
AlarmManagertabanlı 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
AlarmManagertabanlı uygulamadaki bir yarış durumu düzeltildi. b/80346526.Cihaz yeniden başlatıldıktan sonra
JobSchedulerkullanı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
WorkRequestyeniden sıraya alınırken yaşanan kilitlenme düzeltildi. b/109572353.work-runtime-ktxbağımlılığı kullanılırken Kotlin derleyici uyarıları düzeltildi.WorkManager artık
Room1.1.1-rc1sü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(),truedeğerini döndürür.Worker.isCancelled(), çalışma açıkça iptal edildiğindetruedeğ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.JobSchedulerveyaAlarmManagerürününe gönderilebilecek iş sayısını zorunlu kılabilmeniz içinConfiguration.Builder.setMaxSchedulerLimit(int maxSchedulerLimit)eklendi. Bu,WorkManageradlı kullanıcının mevcutJobSchedulerslotlarınızın tamamını kullanmasını önlemeye yardımcı olur.WorkManagertarafından kullanılması güvenli olanJobScheduleriş kimliği aralığının tanımlanmasına yardımcı olanConfiguration.setJobSchedulerJobIdRange(int minJobSchedulerId, int maxJobSchedulerId)eklendi. b/79996760Worker.getRunAttemptCount(), belirli birWorkeriç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.WorkManageryö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,Workeriçin tam nitelikli sınıf adı olan örtülü bir etiket eklendi. Bu sayede,tagolmadan veyaidkullanılamadığındaWorkRequestöğeleri kaldırılabilir. b/109572351
Çarpıcı Değişiklikler
Worker.WorkerResultadlı dosyaWorker.Resultolarak yeniden adlandırıldı.Worker.onStopped, artıkWorkeraçıkça iptal edildiğindetrueolarak ayarlanmış ek birisCancelledparametresine sahip.
7 Haziran 2018
1.0.0-alpha02 navigasyonu serbest bırakıldı.
Navigasyon
Davranış Değişiklikleri
FragmentNavigatorartı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
IllegalStateExceptiondü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
IllegalArgumentExceptionsorunu düzeltildi bunu kullanabilirsiniz. b/79656847NavDeepLinkBuilder kullanılırken
StackOverflowErrorsorunu düzeltildi. b/109653065İç içe yerleştirilmiş grafiğe geri dönerken yaşanan
IllegalArgumentExceptionsorunu düzeltildi. b/80453447launchSingleTopkullanı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
MenuItemolarak 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 birNullPointerExceptiondüzeltildi. b/79550068Workeriş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
Workerile ilişkili uyanık kalma kilitlerinin temizlenmesi arka plan iş parçacığına taşındı.AlarmManageruygulaması, 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
Dataalan adındakifloatdesteğ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(), birWorkercihazı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,Workerile ilişkili etiketlerinSetdeğerini döndürür.Süre ve
TimeUnitsn. kombinasyonundan oluşan API'ler içinjavax.time.Durationaşırı yüklemeleri eklendi. Bu,@RequiresApi(26)tarafından korunuyor.WorkManageruzantı,androidx.work.ktxpaketindenandroidx.workpaketine 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-rc1adlı odanın rezervasyonu iptal edildi.
Hata Düzeltmeleri
- Oda artık Kotlin
1.2.40ile 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:rxjava2yapı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.BuilderveLivePagedListBuilderiçinde)setMainThreadExecutor()adlı dosyasetNotifyExecutor()olarak yeniden adlandırıldı (PagedList.Builderklasöründe).
PagedList.mCallbacksüyenin gizli olduğu düzeltildi.
Hata Düzeltmeleri
LivePagedListBuilder, belirtilen yürütücüde ilkPagedListyüklemesini tetikler. tercih edebilirsiniz.Dahili
DataSourcesarmalayıcılarındaki geçersiz kılma davranışı düzeltildi (DataSource.map, ayrıca yer tutucu devre dışıPositionalDataSourceyükleme) b/77237534
Room
Hata Düzeltmeleri
Room'un Rx
SingleveMaybeuygulamalarında sorguyu önceden geri dönüştürür ve gözlemciyi, döndürülenSingleveyaMaybedeğerleriyle ilişkilendirebilirsiniz. b/76031240RoomDatabase.clearAllTables, çağrılması durumunda veritabanını
VACUUMuygulamaz. 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
@RawQueryartık sorgu parametresi olarakStringiletmeyi 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 Integeryerinevararg intyöntemini kabul ediyor.
Hata Düzeltmeleri
RoomDatabase.clearAllTables artık bir WAL kontrol noktası ayarlayıp
VACUUMveritabanını ekleyerek işletim sistemine geri alan döndürmeyi deniyor.@RawQuery,Embeddedalanları veyaRelation'leri aracılığıyla bir veya daha fazla varlığa referans verdiği süreceobservedEntitiesmü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.LoadParamsnesne artık genel oluşturucuya sahip veDataSource.LoadCallbacknesne 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>),DataSourcetarafı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.extensionspaketi veLivePagedListProviderkalı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
DataSourceuygulaması, 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
PositionalDataSourceiç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
addObserververemoveObserveryö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/63807999SupportSQLiteQueryartık sayıyı döndüren birgetArgCount()yöntemine sahip olabilir. b/67038952
Hata Düzeltmeleri
@RawQueryartık Sayfalama sorguları için düzgün şekilde desteklenmektedir. b/72600425Oda, oluşturulan
Daosınıfı artık düzgün şekilde adlandırarak 2 veya daha fazlaDaoarayüzü aynı pakette bulunan iç sınıftır ve aynı ada sahip olmalıdır. b/73536380Pojoiç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/73534868Daoarayü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->AsyncListDifferListAdapterConfig->AsyncDifferConfigDiffCallback->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-alpha6vecom.android.support:recyclerview-v7:27.1.0olarak güncelle- ListAdapter, Paging'den RecyclerView'a taşındığı için bunların eş zamanlı olarak yapılması gerekir
ListAdapterHelperreferanslarınıAsyncListDifferolarak 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ığı
ListAdapterConfigreferanslarınıAsyncDifferConfigolarak güncelleyinDiffCallbackreferanslarınıDiffUtil.IttemCallbackolarak güncelleyinPagedListAdapterHelperreferanslarınıAsyncPagedListDifferolarak 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 16veya 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
DAOsorgularındaOptional<T>veyaListenableFuture<T>.ListenableFuture<T>özelliğini kullanmak için Odadanguavayapıyı içe aktarmanız gerekiyor (android.arch.persistence.room:guava:1.1.0-alpha2).Oda,
DAOsorgudanjava.util.Optional<T>döndürmeyi destekliyor.Varsayılan uygulamalara sahip arayüz yöntemleri artık
DAOsınıfta@Transactionyöntem. Bu hemJava 8hem de kullanılabilecekKotlin. b/72416735
Hata Düzeltmeleri
Bir derleme hatası olması durumunda
@Relationkullanan oluşturucular, derleme hatasına neden olmaz. başka bir oluşturucusu vardır. b/72884434@Queryyö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
@Metadataek 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.0android.arch.lifecycle:viewmodel:1.1.0
API Değişiklikleri
- Kullanımdan kaldırılan
LifecycleActivityveLifecycleFragmentartık kaldırıldı. Lütfen şunu kullanın:FragmentActivity,AppCompatActivityveyaFragmentdesteği. ViewModelProvidersveViewModelStoresetiketlerine@NonNullek açıklama eklendiViewModelProvidersoluşturucu desteği sonlandırıldı. Lütfen statik yöntemlerini doğrudan kullanınViewModelProviders.DefaultFactorydesteği sonlandırıldı, lütfenViewModelProvider.AndroidViewModelFactorykullanın- Statik
ViewModelProvider.AndroidViewModelFactory.getInstance(Application)yöntemi, verileri almak için eklendiViewModelveAndroidViewModelörnekleri oluşturmaya uygun bir statikFactory.
Oda 1.1.0-alfa1
Yeni Özellikler
RawQuery: Bu yeni API,@Daoyö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.
LivePagedListProviderYeni Oda alfa sürümünü kullanmak için sayfalama özelliğini kullanmanız gerekiralpha-4veya daha yüksek ve henüz yapmadıysanızLivePagedListProviderdeğerindenLivePagedListBuilderdeğ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
DataSourceartı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
PagedListyedeklendi. - İlk yükleme parametreleriyle ilgili daha açık hata davranışı
TiledDataSource, şu değeri yansıtacak şekildePositionalDataSourceolarak 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ı:ItemKeyedDataSourcenet bir şekilde belirtin.LivePagedListBuilderveDataSource.FactorydeğiştirmeLivePagedListProvider. Oluşturucu, aynı yapıda birçok başka uzantı ile özelleştirme ve daha basit varsayılan ayarlar. FabrikadaDataSourcenesile izin veriliyor kodundanLiveDatabağımsız kalmaya devam edecektir.Veritabanı ve ağ kullanım alanı için
PagedList.BoundaryCallbackeklendi.PagedList.Builderoluşturucu şu anDataSource+PagedList.ConfigalıyorLivePagedListBuilderoperatörüne daha benzerdir ve Java dili veya Kotlin'deki türetilmiş türler.PagedList.getConfig()eklendi vePagedList.Configartı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
LiveDataReactiveStreamsartı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_STOPartık şu durumlarda gönderilir:onSaveInstanceStateadlı kullanıcının adı:CREATED(ON_STOPgöndermeden) önce. Şurada daha fazla bilgi edinebilirsiniz: Yaşam döngüleri belgeleri.
Hata Düzeltmeleri
Oda:
- Oda artık
OutOfMemorysorununu düzelten en son harici yapıya bağlıdır sorunlarından bahsedeceğiz. b/62473121 Queryyöntemlerine artık@Transactionile not ekleyebilirsiniz. Ayrıntılar için@Transactionadresindeki referans dokümanlara bakın. b/65112315- Odadaki
StringUtilsı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
OnLifecycleEventyö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
WeakReferencedeğ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:
LiveDataReactiveStreamsartık düzgün bir şekilde kaynak e-posta listesinden çıkıyorLiveDataetkin 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
FullLifecycleObserverartı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
@Queryyöntemi,@NonNullsütunlarından bazılarıdır. Alan@Nullableise 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
NullableolabilirIntegerveyaLong. 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.0kararlı sürümden önce kaldırılır. Onlar Destek Kitaplığı26.1.0veya 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.0sürümüdür.
Yeni Yapılar
Yaşam döngüleri artık
common-java8adı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.beta1hizmetindeki bir hata nedeniyle Yenicommon-java8yapısını kullanmak içinandroid.arch.lifecycle:common:1.0.1modülünü. Bu sorunbeta2içinde düzeltilecek.
Paketleme Değişiklikleri
android.arch.persistence.room.db,android.arch.persistence.dbURL'sine taşındıandroid.arch.persistence.room.db-impltaşındı veandroid.arch.persistence.db-frameworkolarak 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
@ColumnInfoile ek açıklama eklenmedikleri sürecetransientalanları artık varsayılan olarak yoksayılıyor.@Embeddedveya@Relation. b/62600692- Birincil Anahtarlar, otomatik olarak oluşturulmadıkça
@NonNullile 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
DAOyö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:
@Queryyö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
@Generatedile ek açıklama olarak gösterilir. b/35754819MediatorLiveData'nın gözlemci karşılaştırma hatası düzeltildi. b/64413274
SQLite
WITHsorguları 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,
onChangedyö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 NULLkı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
removeObserveryö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,observer2tarihinden önce eklenirseobserver2tarihinden önceON_CREATEve 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,observer2tarihinden önce eklenirse önceON_CREATE, ardındanobserver2cihazına gönderilir (ON_STARTveON_RESUMEiçin de aynı olur), ancakON_PAUSEetkinliği önceobserver2, ardından sadeceobserver1adlı kişiye gönderilir (ON_STOPveON_DESTROYiçin aynı).observer1Taşı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.BuilderhedefinefallbackToDestructiveMigration()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.Builderişlevine yeni bir geri çağırma yöntemi eklendi. b/62699324@Query artık RxJava
MaybeveyaSingledö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
@Deletesorgu 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,@Deleteve@Updateyöntemlerinde artık farklı öğe türlerinden parametreler bulunabilir. b/62682405
Hata Düzeltmeleri
@Daoyö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
@OnLifecycleEventartı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.LifecycleActivityveLifecycleFragmentsınıflarıandroid.arch.lifecycle:extensionsyapısına taşınır.MigrationTestHelper, Instrumentation örneğini alır. yerine
Contextyerine kullanarak şemayı test öğelerinden okuyabilir ve bağlamayı öğreteceğim.@Insert,@Deleteve@Updateek açıklamaları@DAOyöntemlerinde artık parametre türüIterableolabilir. 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
INparametresi artık düzgün bir şekilde işleniyor. b/62608681Soyut DAO sınıfları artık
@Databasealan bir oluşturucuya sahip olabilir kullanır. b/38488747DAOartı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)
@Insertsorguları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ü
FragmentveActivityCompathenüzLifecycleOwnerarayüzünü uygulamamaktadır. Mimari Bileşenler 1.0.0 sürümüne ulaştığında bunu yapar.