Çalışma Zamanı Oluşturma

Compose'un programlama modelinin ve durum yönetiminin temel yapı taşları ve Compose Compiler eklentisinin hedefleyeceği temel çalışma zamanı.
Son Güncelleme Kararlı Sürüm Yayın Adayı Beta Sürümü Alfa Sürümü
24 Temmuz 2024 1.6.8 - 1.7.0-beta06 -

Yapı

Oluşturma, androidx içindeki 7 Maven grubu kimliğinin kombinasyonudur. Her Grup Her biri kendi sürüm kümesine sahip olan, hedeflenmiş bir işlev alt kümesi içerir notlar.

Bu tabloda, gruplar ve her sürüm notu grubunun bağlantıları açıklanmaktadır.

GrupAçıklama
compose.animationJetpack Compose uygulamalarında animasyonlar oluşturarak kullanıcı deneyimini zenginleştirin.
compose.derleyici@Composable işlevlerini dönüştürün ve Kotlin derleyici eklentisiyle optimizasyonları etkinleştirin.
compose.temelKullanıma hazır yapı taşlarıyla Jetpack Compose uygulamaları yazın ve kendi tasarım sistemi parçalarınızı oluşturmak için temeli genişletin.
compose.materialKullanıma hazır Materyal Tasarım Bileşenleri ile Jetpack Compose kullanıcı arayüzleri oluşturun. Bu, Compose'un www.material.io adresinde açıklananlarla eşleşen bileşenleri sağlamak üzere tasarlanmış üst düzey giriş noktasıdır.
compose.material3Materyal Tasarım'ın yeni evrimi olan Materyal Tasarım 3 Bileşenleriyle Jetpack Compose kullanıcı arayüzleri oluşturun. Güncellenmiş tema ve bileşenler ile dinamik renk gibi Material You kişiselleştirme özellikleri içeren Material 3, yeni Android 12 görsel stili ve sistem kullanıcı arayüzüyle uyumlu olacak.
compose.runtimeCompose'un programlama modelinin ve durum yönetiminin temel yapı taşları ve Compose Compiler eklentisinin hedefleyeceği temel çalışma zamanı.
compose.uiDüzen, çizim ve giriş de dahil olmak üzere cihazla etkileşimde bulunmak için gereken yazma kullanıcı arayüzünün temel bileşenleri.

Bağımlılıkları bildirme

Compose'a bağımlılık eklemek için Google Maven deposunu belirler. Google'ın Maven deposunu okuyun konulu videomuzu izleyin.

build.gradle dosyasına ihtiyacınız olan yapıların bağımlılıklarını ekleyin. uygulamanız veya modülünüz:

Modern

dependencies {
    implementation "androidx.compose.runtime:runtime:1.6.8"
    implementation "androidx.compose.runtime:runtime-livedata:1.6.8"
    implementation "androidx.compose.runtime:runtime-rxjava2:1.6.8"
}

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.14"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

dependencies {
    implementation("androidx.compose.runtime:runtime:1.6.8")
    implementation("androidx.compose.runtime:runtime-livedata:1.6.8")
    implementation("androidx.compose.runtime:runtime-rxjava2:1.6.8")
}

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.14"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Bağımlılıklar hakkında daha fazla bilgi için Derleme bağımlılıkları ekleme bölümüne bakın.

Geri bildirim

Geri bildiriminiz Jetpack'i iyileştirmemize yardımcı olacaktır. Yeni sorunlarla karşılaşırsanız veya fikir edinebilirsiniz. Daha fazla bilgi için lütfen mevcut sorunlar tıklayın. Oyunuzu mevcut bir soruna eklemek için yıldız düğmesini tıklayın.

Yeni sayı oluştur

Sorun İzleyici dokümanlarına bakın konulu videomuzu izleyin.

Çalışma Zamanı İzleme Sürümü 1.0

Sürüm 1.0.0-beta01

29 Kasım 2023

androidx.compose.runtime:runtime-tracing:1.0.0-beta01 yayınlandı. Sürüm 1.0.0-beta01 bu kaydetmeleri içerir.

Sürüm 1.0.0-alpha05

15 Kasım 2023

androidx.compose.runtime:runtime-tracing:1.0.0-alpha05 yayınlandı. 1.0.0-alpha05 sürümü bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • Bağımlılıklar, desteklenen en düşük kararlı sürümlere (ör.oluşturma-çalışma zamanı ve izleme-perfetto) sabitlendi. Oluşturma-çalışma zamanı izleme özelliğinin uygulamaya oluşturma çalışma zamanının daha yeni bir sürümünü getireceği bir sorun düzeltildi.

Sürüm 1.0.0-alpha04

23 Ağustos 2023

androidx.compose.runtime:runtime-tracing:1.0.0-alpha04 yayınlandı. 1.0.0-alpha04 sürümü bu kaydetmeleri içerir.

Yeni Özellikler

  • Karşılaştırma ve İzleme Perfetto'nun en son sürümleriyle uyumludur, böylece uygulama başlatılırken (baştan başlatma) (örneğin, soğuk başlatma) Beste İzleme desteği sunulur. (Hedgehog Beta 2'den başlayarak).

API Değişiklikleri

  • androidx.tracing.perfetto.Trace adlı dosya androidx.tracing.perfetto.PerfettoSdkTrace olarak yeniden adlandırıldı. (I44af8)
  • Tracing Perfetto SDK API'leri android.os.Trace ile tutarlı hâle getiriliyor. (I73ba0, b/282199917)
  • Uygulama başlatılırken izlemeye ilişkin ön koşullar. (Iad890)
  • Birleştirilmiş deneysel ve herkese açık API dosyaları (I0f2e1, b/278769092)

Sürüm 1.0.0-alpha02

8 Şubat 2023

androidx.compose.runtime:runtime-tracing:1.0.0-alpha02 yayınlandı. 1.0.0-alpha02 sürümü bu kaydetmeleri içerir.

Yeni Özellikler

  • İşlevsel değişiklik yok. Aşağı akış bağımlılıklarında birden fazla performans optimizasyonu androidx.tracing:tracing-perfetto*.

Sürüm 1.0.0-alpha01

7 Eylül 2022

androidx.compose.runtime:runtime-tracing:1.0.0-alpha01 yayınlandı. 1.0.0-alpha01 sürümü bu kaydetmeleri içerir.

Yeni Özellikler

  • androidx.compose.runtime:runtime-tracing, destekleyen araçlar içeren (yakında) bir Compose uygulamasında genişletilmiş izlemeye olanak tanıyan bir kitaplıktır. Bu ilk sürüm 1.0.0-alpha01'dir.

Sürüm 1.7

Sürüm 1.7.0-beta06

24 Temmuz 2024

androidx.compose.runtime:runtime-*:1.7.0-beta06 yayınlandı. Sürüm 1.7.0-beta06 bu kayıtları içerir.

Sürüm 1.7.0-beta05

10 Temmuz 2024

androidx.compose.runtime:runtime-*:1.7.0-beta05 yayınlandı. Sürüm 1.7.0-beta05 bu kayıtları içerir.

Sürüm 1.7.0-beta04

26 Haziran 2024

androidx.compose.runtime:runtime-*:1.7.0-beta04 yayınlandı. Sürüm 1.7.0-beta04 bu kayıtları içerir.

Sürüm 1.7.0-beta03

12 Haziran 2024

androidx.compose.runtime:runtime-*:1.7.0-beta03 yayınlandı. Sürüm 1.7.0-beta03 bu kayıtları içerir.

Sürüm 1.7.0-beta02

29 Mayıs 2024

androidx.compose.runtime:runtime-*:1.7.0-beta02 yayınlandı. Sürüm 1.7.0-beta02 bu kayıtları içerir.

Sürüm 1.7.0-beta01

14 Mayıs 2024

androidx.compose.runtime:runtime-*:1.7.0-beta01 yayınlandı. Sürüm 1.7.0-beta01 bu kayıtları içerir.

Sürüm 1.7.0-alpha08

1 Mayıs 2024

androidx.compose.runtime:runtime-*:1.7.0-alpha08 yayınlandı. Sürüm 1.7.0-alpha08 bu kaydetmeleri içerir.

Sürüm 1.7.0-alpha07

17 Nisan 2024

androidx.compose.runtime:runtime-*:1.7.0-alpha07 yayınlandı. Sürüm 1.7.0-alpha07 bu kaydetmeleri içerir.

Yeni Özellikler

  • Varsayılan olarak, compositionLocalWithComputedDefault() kullanılarak veya provides yerine providesComputed kullanarak değeri hesaplamak için kullanılacak bir lambda sağlanarak diğer beste yerellerinin değerlerine göre hesaplanan yerel bir beste sağlama özelliği eklendi.
  • Bir bestenin yerel değeri, değeri hesaplamak için lambda içinden erişilebilen bestenin currentValue özelliği kullanılarak elde edilebilir. Bu, yalnızca @Composable işlevlerinde erişilebilen current yerine kullanılır. (Iadbc0)

API Değişiklikleri

  • Yeni oluşturulan durum nesnelerine, genel anlık görüntü de dahil olmak üzere diğer anlık görüntülerden başlangıç durumlarıyla hemen erişilebilir. Nesnenin oluşturulduğu anlık görüntü uygulanana kadar sonraki değişiklikler görünmez.
  • mutableStateOf() öğesinin ilk durumu ve temel sürümleri, mutableStateOf() işlevine parametre olarak iletilen değerdir. mutableStateListOf() ve mutableStateMapOf() başlangıç durumu boş.
  • Bir durum nesnesinin oluşturulduktan sonra genel anlık görüntüden hemen erişilebilir olmasını desteklemek için kullanılan Snapshot.isInSnapshot ve Snapshot.PreexistingSnapshotId eklendi.
  • Özel durum nesneleri, yerleşik anlık görüntü nesnelerinde yapılan değişikliklerin kalıbını takip ederek hemen erişilebilir olmayı destekleyebilir. (I84a17)

Hata Düzeltmeleri

  • İç içe yerleştirilmiş anlık görüntülerde readObserver öğelerinin birleştirilmesi düzeltildi. Bu durum, iç içe yerleştirilmiş türetilmiş durumların snapshotFlow içinde kullanıldığında gereğinden az geçersiz olmasına neden oldu. (Idf138)

Sürüm 1.7.0-alpha06

3 Nisan 2024

androidx.compose.runtime:runtime-*:1.7.0-alpha06 yayınlandı. Sürüm 1.7.0-alpha06 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • providesDefault (538f45) işleyen tek değerler sağlama sorununu düzeltin
  • Recomposer'da kare saate (07e5c6) erişen bir kilitlenme oluşmasını önleyin

Sürüm 1.7.0-alpha05

20 Mart 2024

androidx.compose.runtime:runtime-*:1.7.0-alpha05 yayınlandı. Sürüm 1.7.0-alpha05 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • Devre dışı bırakılan bestedeki geç değişiklikleri net bir şekilde belirtin (5950bc)

Sürüm 1.7.0-alpha04

6 Mart 2024

androidx.compose.runtime:runtime-*:1.7.0-alpha04 yayınlandı. Sürüm 1.7.0-alpha04 bu kaydetmeleri içerir.

Performans iyileştirmeleri

  • Türetilmiş durum değerlendirmesi başına bir kez Snapshot.current çağrısı (ee7daf)
  • Kompozisyonda gözlem başına bir kez currentRecord oku (b882b2)
  • snapshotFlow içinde yanlışlıkla yapılan yinelemeyi kaldırın (231e56)
  • Oluşturma kitaplıkları için nonSkippingGroupOptimization öğesini etkinleştir. Bu, androidx'te yeniden başlatılamayan tüm composable işlevler için oluşturulan kodun daha verimli olmasına neden olur. Gelecekte bu özelliği varsayılan olarak etkinleştirmeyi planlıyoruz. I(acbc08)

Sürüm 1.7.0-alpha03

21 Şubat 2024

androidx.compose.runtime:runtime-*:1.7.0-alpha03 yayınlandı. 1.7.0-alpha03 sürümü bu kaydetmeleri içerir.

API Değişiklikleri

  • Değişikliklerin daha iyi tespit edilebilmesi için değiştirme gruplarını kullanın (0941b5)

Performans iyileştirmeleri

  • Değişiklikleri algılarken bellek ayırmayı iyileştirme (53e7fd)
  • Oluşturucudaki bellek sızıntısını düzeltme (0e097d)
  • Yeniden oluştururken geçersiz kılmaları iletmek için ScopeMap kullanın (e19a7e)
  • Yalnızca türetilmiş durumları korumak için geçersiz kılmalar haritasını optimize edin (f11c44)
  • IdentityArraySet kullanımlarını ScatterSet (db572e) ile değiştirin
  • ScopeMap içinde removeScope optimize edin (bb0530)

Sürüm 1.7.0-alpha02

7 Şubat 2024

androidx.compose.runtime:runtime-*:1.7.0-alpha02 yayınlandı. 1.7.0-alpha02 sürümü bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • Aynı karedeki alt bestelerdeki composable lambda'ları geçersiz kılın. (98301c)
  • onForgotten ile aynı sırayla onRelease geri arama numarasını arayın. (2cd790)
  • snapshotFlow içinde gözlemlenmeyen, filtre değişti durumları. (796b80)

Performans iyileştirmeleri

  • Zaten şeffaf olduğunda anlık görüntü gözlemleyicisini yerinde değiştirin. (f60f30)
  • SnapshotIdSet.lowest() optimize edin. (7ae149)
  • SnapshotIdSet uygulamasında tahsis edilmeyen bir fold() kullanın. (532b7d)
  • Yinelemeli ayırmayı kaldırın (83f96b)

Sürüm 1.7.0-alpha01

24 Ocak 2024

androidx.compose.runtime:runtime-*:1.7.0-alpha01 yayınlandı. 1.7.0-alpha01 sürümü bu kaydetmeleri içerir.

Performans optimizasyonları

  • Alt grup eklendikten sonra alan oluşturma özelliğini ekleme (b5960c)
  • Anlık görüntü durumlarının kayıt değişikliklerini optimize etme (28c3fe)
  • Güçlü atlama modunu etkinleştirme (ed1766)

Hata Düzeltmeleri

  • İçsel hatırlamada varsayılan parametre meta değerini hesaba katın (096665)
  • currentCompoundHashKey özelliğini daha fazla durumda benzersiz hale getirin (d4a872)
  • Satır içi işlev çağrısından çıkarken grupları fark eder (2a90fc)

Sürüm 1.6

Sürüm 1.6.8

12 Haziran 2024

androidx.compose.runtime:runtime-*:1.6.8 yayınlandı. Sürüm 1.6.8 bu taahhütleri içerir.

Sürüm 1.6.7

1 Mayıs 2024

androidx.compose.runtime:runtime-*:1.6.7 yayınlandı. Sürüm 1.6.7 bu taahhütleri içerir.

Sürüm 1.6.6

17 Nisan 2024

androidx.compose.runtime:runtime-*:1.6.6 yayınlandı. Son sürümden bu yana değişiklik yok.

Sürüm 1.6.5

3 Nisan 2024

androidx.compose.runtime:runtime-*:1.6.5 yayınlandı. Sürüm 1.6.5 bu taahhütleri içerir.

Sürüm 1.6.4

20 Mart 2024

androidx.compose.runtime:runtime-*:1.6.4 yayınlandı. Sürüm 1.6.4 bu kaydetmeleri içerir.

Sürüm 1.6.3

6 Mart 2024

androidx.compose.runtime:runtime-*:1.6.3 yayınlandı. Sürüm 1.6.3 bu taahhütleri içerir.

Sürüm 1.6.2

21 Şubat 2024

androidx.compose.runtime:runtime-*:1.6.2 yayınlandı. 1.6.2 sürümü bu kaydetmeleri içerir.

Sürüm 1.6.1

7 Şubat 2024

androidx.compose.runtime:runtime-*:1.6.1 yayınlandı. Sürüm 1.6.1 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • onForgotten ile aynı sırayla onRelease geri arama numarasını arayın. (2cd790)
  • snapshotFlow içinde gözlemlenmeyen, filtre değişti durumları. (796b80)

Sürüm 1.6.0

24 Ocak 2024

androidx.compose.runtime:runtime-*:1.6.0 yayınlandı. 1.6.0 sürümü bu kaydetmeleri içerir.

1.5.0'dan bu yana önemli değişiklikler

Yeni Özellikler

  • Yeniden oluşturma döngüsü sırasında yutulan istisnaları yeniden gönderme (4dff9a)

Performans optimizasyonları

  • Anlık görüntü durumlarının kayıt değişikliklerini optimize etme (28c3fe)
  • rememberSaveable optimize edin (f01d79)
  • Değişiklikler kaydedilene kadar türetilen durumları yeniden okumayı ertele (f38099)
  • Beste yerel değerleri sağlama özelliğini iyileştirme (a337ea)

Hata Düzeltmeleri

  • Slot tablosu bellek sızıntısını düzeltme (73fcfe)
  • Kaldırılacak alt bestelerin yeniden oluşturulmasını atlayın. (Ieeb99, b/254645321)
  • RememberObserver yaşam döngülerini yalnızca hatırlama hesaplamasında depolandığında tetikleyin. (f6b4dc)
  • $dirty yakalamasını satır içi lambda'larla kısıtlayın. (acfca0)
  • Bazen yanlış beste yerellerini alan taşınabilir içerik sorununu düzeltme. (035cd6)

Sürüm 1.6.0-rc01

10 Ocak 2024

androidx.compose.runtime:runtime-*:1.6.0-rc01 yayınlandı. Sürüm 1.6.0-rc01 bu kaydetmeleri içerir.

Sürüm 1.6.0-beta03

13 Aralık 2023

androidx.compose.runtime:runtime-*:1.6.0-beta03 yayınlandı. Sürüm 1.6.0-beta03 bu kaydetmeleri içerir.

Sürüm 1.6.0-beta02

29 Kasım 2023

androidx.compose.runtime:runtime-*:1.6.0-beta02 yayınlandı. Sürüm 1.6.0-beta02 bu kaydetmeleri içerir.

Sürüm 1.6.0-beta01

15 Kasım 2023

androidx.compose.runtime:runtime-*:1.6.0-beta01 yayınlandı. Sürüm 1.6.0-beta01 bu kaydetmeleri içerir.

API Değişiklikleri

  • Ek açıklamada belirli kararlılık değerlerini uygulayın. (274a4c)

Hata Düzeltmeleri

  • Bir bağlamda beste yerel kapsam durumu için referans politikası kullanın. (83361c)
  • $dirty yakalamayı satır içi lambda'larla kısıtlayın. (acfca0)
  • Bazen yanlış beste yerellerini alan taşınabilir içerik sorununu düzeltme. (035cd6)
  • RecomposeScopeImpl bölgesinde, ayırma yapmayan daha hızlı karma eşlemeler kullanın. (d79494)
  • DerivedState uygulamasında ObjectIntMap kullanın. (21862e)
  • DerivedState içinde tam SnapshotThreadLocal için IntRef kullanın. (04eaf4)

Sürüm 1.6.0-alpha08

18 Ekim 2023

androidx.compose.runtime:runtime-*:1.6.0-alpha08 yayınlandı. 1.6.0-alpha08 sürümü bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • RememberObserver yaşam döngülerini yalnızca hatırlama hesaplamasında depolandığında tetikleyin. (f6b4dc)
  • Geçersiz kılma listesi sıralamasında ayırmaları iyileştirin. (954d63)
  • SnapshotStateObserver ürününde, ayırma yapmayan yeni haritaları kullanın. (4303ce)
  • Beste devre dışı bırakıldığında geçersiz kılmaları temizleyin. (e001be)

Sürüm 1.6.0-alpha07

4 Ekim 2023

androidx.compose.runtime:runtime-*:1.6.0-alpha07 yayınlandı. 1.6.0-alpha07 sürümü bu kaydetmeleri içerir.

API Değişiklikleri

  • SnapshotStateList, kullanılacak liste yardımcılarının doğrudan dizine ekleme sürümünün etkinleştirilmesi için RandomAccess olarak işaretlendi. (I5210c, b/219554654)

Sürüm 1.6.0-alpha06

20 Eylül 2023

androidx.compose.runtime:runtime-*:1.6.0-alpha06 yayınlandı. 1.6.0-alpha06 sürümü bu kaydetmeleri içerir.

Sürüm 1.6.0-alpha05

6 Eylül 2023

androidx.compose.runtime:runtime-*:1.6.0-alpha05 yayınlandı. 1.6.0-alpha05 sürümü bu kaydetmeleri içerir.

Sürüm 1.6.0-alpha04

23 Ağustos 2023

androidx.compose.runtime:runtime-*:1.6.0-alpha04 yayınlandı. 1.6.0-alpha04 sürümü bu kaydetmeleri içerir.

Yeni Özellikler

  • Yeniden oluşturma döngüsü sırasında yutulan istisnaları yeniden gönderme (4dff9a)

API Değişiklikleri

  • ReusableComposition devre dışı bırakılması için gözlemleri kaldıran ancak düğümleri yerinde tutan bir yöntem eklendi. Devre dışı bırakılan beste, setContent çağrısı yapılarak tekrar etkinleştirilebilir. (Ib7f31)
  • Alt bileşenlerin yaşam döngüsünü ve yeniden kullanımını yönetmek için ReusableComposition arayüzü ekleyin. (I812d1, b/252846775)

Sürüm 1.6.0-alpha03

9 Ağustos 2023

androidx.compose.runtime:runtime-*:1.6.0-alpha03 yayınlandı. 1.6.0-alpha03 sürümü bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • Yeni CompositionLocalProvider optimizasyonunu düzeltin (3118e88)
  • Taşınabilir içerik düğümlerinin nasıl söküldüğünü düzeltin. (5e3d59b)

Sürüm 1.6.0-alpha02

26 Temmuz 2023

androidx.compose.runtime:runtime-*:1.6.0-alpha02 yayınlandı. 1.6.0-alpha02 sürümü bu kaydetmeleri içerir.

Yeni Özellikler ve Performans iyileştirmeleri

  • rememberSaveable optimize edin (f01d79)
  • Değişiklikler kaydedilene kadar türetilen durumları yeniden okumayı ertele (f38099)
  • Beste yerel değerleri sağlama özelliğini iyileştirme (a337ea)
  • SideEffect, grup oluşturulmasını önlemek için @ExplicitGroupsComposable olarak işaretlendi. (I74815)
  • Kompozisyon yerel haritalarını yeniden kullanım durumlarında karşılaştırmaktan kaçının (782071)

API Değişiklikleri

  • CompositionLocalProviders için, birden fazla değer sağlamayı hızlandırmak amacıyla kullanılan ancak tek bir değer sağlarken ek yükten kaçınan özel bir durum aşırı yüklemesi eklendi. (I6d640, b/288169379)

Hata Düzeltmeleri

  • Slot tablosu bellek sızıntısını düzeltme (73fcfe)
  • stateSaver, null değeri döndürdüğünde rememberSaveable özelliğinin geri yüklenmesiyle ilgili sorunu düzeltin (90748c)

Sürüm 1.6.0-alpha01

21 Haziran 2023

androidx.compose.runtime:runtime-*:1.6.0-alpha01 yayınlandı. 1.6.0-alpha01 sürümü bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • Kaldırılacak alt bestelerin yeniden oluşturulmasını atlayın. (Ieeb99, b/254645321)
  • Anlık görüntüler uygulanırken daha az ayırmalar. (I65c09)
  • Anlık görüntü değiştirilmediyse DerivedState içinde readableHash hesaplamasından kaçının (68c565)

Sürüm 1.5

Sürüm 1.5.4

18 Ekim 2023

androidx.compose.runtime:runtime-*:1.5.4 yayınlandı. 1.5.4 sürümü bu kaydetmeleri içerir.

Sürüm 1.5.3

4 Ekim 2023

androidx.compose.runtime:runtime-*:1.5.3 yayınlandı. 1.5.3 sürümü bu kaydetmeleri içerir.

Sürüm 1.5.2

27 Eylül 2023

androidx.compose.runtime:runtime-*:1.5.2 yayınlandı. Sürüm 1.5.2 bu kaydetmeleri içerir.

Sürüm 1.5.1

6 Eylül 2023

androidx.compose.runtime:runtime-*:1.5.1 yayınlandı. Sürüm 1.5.1 bu kaydetmeleri içerir.

Sürüm 1.5.0

9 Ağustos 2023

androidx.compose.runtime:runtime-*:1.5.0 yayınlandı. 1.5.0 sürümü bu kaydetmeleri içerir.

API Değişiklikleri

  • Yeniden düzenleme, renk animasyonları ve AndroidComposeView kapsamındaki ayırmalar kaldırıldı. (Ib2bfa)
  • Durum oluşturan ve bir remember çağrısına sarmalanması gereken işlevleri işaretlemek için bir @StateFactoryMarker ek açıklaması eklendi. (I64550)
  • Devlet ve MutableState (fb3d89) temel sürümlerini ekleyin
  • Snapshot.isApplyObserverNotificationPending eklendi (I672a5)
  • State API'sinin temel sürümleri eklendi. Bu sürümler, otomatik kutulama için ceza uygulanmadan, Int, Long, Kayma ve Çift değerlerinin State nesnelerinde izlenmesini sağladı. Bunları kullanmak için mutableIntState(Int), mutableFloatStateOf(Float) vb. yeni fabrika yöntemlerini kullanın. (I48e43)

Hata Düzeltmeleri

  • Kaldırılacak alt bestelerin yeniden oluşturulmasını atlayın. (Ieeb99, b/254645321)
  • ComposerImpl içinde anlık görüntü referansını saklama (0206f7)
  • Kompozisyonu iki kez uygulamayın (f5791b)
  • Başlatılmamış türetilmiş durum değerleri için geçersiz kılmayı sağlama (aa2a92)
  • Besteyi atma sırasında onEndChanges numaralı telefonu arayın. (62cc8c)
  • Alt besteye taşınan içeriği düzeltme (4beb41)
  • Olası kilitlenmeleri düzeltin (c1a425 ve 8edce0)
  • Bir Android penceresi için oluşturulan oluşturucu artık, ON_STOP bildirimi aldığında tüm besteler yerine yalnızca withFrameNanos için yapılan aramaları engelleyecek. Bu, durdurulan etkinliklerle ilişkili pencerelerin veri değişiklikleri için yeniden derlemeye devam edeceği ancak animasyonların veya withFrameNanos diğer çağrılarının engelleyeceği anlamına gelir. (Id9e7f, b/240975572)
  • Efektleri uygulamadan önce LayoutNode için devre dışı bırakma geri çağırmaları yürütün 3784073
  • Yeniden başlatılan lambdas ea81df9 için değiştirilen işaretleri düzeltme
  • 73fd4d8 düğümleri olan Composable için canlı düzenleme regresyonunu düzeltme
  • ON_STOP, ae276f1 bestesi yerine kare saat yayınlarını duraklatmalıdır
  • SnapshotStateObserver kapsamlarını değiştirilmemiş türetilmiş durumlar için geçersiz kılın 84d9b1c
  • Besteleri atarken olası kilitlenmeleri giderme 28761fc
  • Bir alt besteye taşınan içeriği düzeltme 92d4156
  • Yeniden başlatılan lambda'lar için değiştirilen işaretleri düzeltme (8a03e9)
  • Efektleri kullanmadan önce LayoutNode için devre dışı bırakma geri çağırmaları yürütün (8b0fa4)
  • Düğüm gruplarını sonlandırırken endToMarker() sorununu düzeltin. (d71d980)
  • Devre dışı bırakma kontrolü için mevcut SlotWriter grubunu kullan (a0b518b)
  • SlotTable.moveSlotGapTo() içindeki fill öğesini kaldırın ve kapanışa taşıyın (81f9935)
  • Taşınabilir içerik taşınırken eksik geçersiz kılmaları düzeltme (1d7c024)
  • Taşınan taşınabilir içerikle ilgili geçersiz kılma işlemlerini derhal düzeltme (8676618)

Performans iyileştirmeleri

  • Anlık görüntü değiştirilmediyse DerivedState içinde readableHash hesaplamaktan kaçının. (307102)
  • Azaltılmış ayırmalar (I65c09, d7ea77, 727974 ve 445808)
  • Oluşturmayı hızlıca iptal etme CoroutineScopes (a55362 ve bd382f)
  • Erişilemez durum kayıtlarına sahip durum nesnelerinin kayıtlarının üzerine yaz (c986960)
  • Grupları değerlendirirken doğru kapsamdaki oluşturucuyu kullanın (9a5e5b6)
  • Anlık görüntü geçersiz kılmalarını depolamak için IdentityArraySet kullanın (7f60cca)
  • Anlık görüntü gözlemleri için ayırmaları azaltın (5bc535f)

Sürüm 1.5.0-rc01

26 Temmuz 2023

androidx.compose.runtime:runtime-*:1.5.0-rc01 yayınlandı. Sürüm 1.5.0-rc01 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • Değişiklikler kaydedilene kadar türetilen durumları yeniden okumayı ertele (f38099)

  • mutableStateOf() çağrılarının, temel öğeler için karşılık gelen özel türlerine taşınmasını öneren isteğe bağlı bir inceleme mevcuttur. Kodun lint kimliği AutoboxingStateCreation. Daha önce bu inceleme tüm projeler için varsayılan olarak etkindi. Android Studio'nun düzenleyicisinde ve projenizin lint çıkışlarında bu uyarıyı görmek için modülünüzün build.gradle veya build.gradle.kts yapılandırmasında gösterildiği şekilde (I34f7e) warning "AutoboxingStateCreation" değerini tanımlayarak bilgi düzeyinin bilgi amaçlı yerine uyarı (veya daha yüksek) değerini değiştirin:

        android {
            lint {
                warning "AutoboxingStateCreation"
            }
            ...
        }
    

Sürüm 1.5.0-beta03

28 Haziran 2023

androidx.compose.runtime:runtime-*:1.5.0-beta03 yayınlandı. Sürüm 1.5.0-beta03 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • Kaldırılacak alt bestelerin yeniden oluşturulmasını atlayın. (Ieeb99, b/254645321)

Sürüm 1.5.0-beta02

7 Haziran 2023

androidx.compose.runtime:runtime-*:1.5.0-beta02 yayınlandı. Sürüm 1.5.0-beta02 bu kaydetmeleri içerir.

Performans iyileştirmeleri

  • Anlık görüntü değiştirilmediyse DerivedState içinde readableHash hesaplamaktan kaçının. (307102)

Sürüm 1.5.0-beta01

24 Mayıs 2023

androidx.compose.runtime:runtime-*:1.5.0-beta01 yayınlandı. Sürüm 1.5.0-beta01 bu kaydetmeleri içerir.

API Değişiklikleri

  • Yeniden düzenleme, renk animasyonları ve AndroidComposeView (Ib2bfa) özelliğinde ayırmalar kaldırıldı
  • Durum oluşturan ve bir remember çağrısına sarmalanması gereken işlevleri işaretlemek için bir @StateFactoryMarker ek açıklaması eklendi. (I64550)
  • Devlet ve MutableState (fb3d89) temel sürümlerini ekleyin
  • Snapshot.isApplyObserverNotificationPending eklendi (I672a5)

Hata Düzeltmeleri

  • Azaltılmış ayırmalar (I65c09, d7ea77, 727974 ve 445808)
  • ComposerImpl içinde anlık görüntü referansını saklama (0206f7)
  • Oluşturmayı hızlıca iptal etme CoroutineScopes (a55362 ve bd382f)
  • Kompozisyonu iki kez uygulamayın (f5791b)
  • Başlatılmamış türetilmiş durum değerleri için geçersiz kılmayı sağlama (aa2a92)
  • Besteyi atma sırasında onEndChanges numaralı telefonu arayın. (62cc8c)
  • Alt besteye taşınan içeriği düzeltme (4beb41)
  • Olası kilitlenmeleri giderme (c1a425)
  • ON_STOP, beste (f4a2d1) yerine kare saat yayınlarını duraklatmalıdır
  • Yeniden başlatılan lambda'lar için değiştirilen işaretleri düzeltme (8a03e9)
  • Efektleri kullanmadan önce LayoutNode için devre dışı bırakma geri çağırmaları yürütün (8b0fa4)

Harici Katkı

  • Snapshot.isApplyObserverNotificationPending eklendi (I672a5)

Sürüm 1.5.0-alpha04

10 Mayıs 2023

androidx.compose.runtime:runtime-*:1.5.0-alpha04 yayınlandı. 1.5.0-alpha04 sürümü bu kaydetmeleri içerir.

API Değişiklikleri

  • State API'sinin temel sürümleri eklendi. Bu sürümler, otomatik kutulama için ceza uygulanmadan, Int, Long, Kayma ve Çift değerlerinin State nesnelerinde izlenmesini sağladı. Bunları kullanmak için mutableIntState(Int), mutableFloatStateOf(Float) vb. yeni fabrika yöntemlerini kullanın. (I48e43)

Hata Düzeltmeleri

  • Besteyi atma sırasında onEndChanges numaralı telefonu arayın. Composition.dispose sırasında kaldırılan odak düğümleri, odağı sıfırlamak için onEndChanges öğesine abone oluyor.(03d4a47)

  • Başlatılmamış türetilmiş durum değerlerinin geçersiz olduğundan emin olun. SnapshotStateObserver işlevinde her türetilmiş durum, bağımlılıklarının bir listesiyle ilişkilendirilir. Bu liste, bağımlılık değiştiğinde türetilmiş durumla ilişkilendirilen kapsamları geçersiz kılmak için kullanılır. Bağımlılık değişikliği, türetilmiş durum okunduktan sonra (Snapshot.notifyObjectsInitialized() çağrısı nedeniyle) gerçekleşebilecek anlık görüntü ilerlemesine kaydedilir.

    SnapshotStateObserver aracında daha önce türetilen durum gözlem mantığı, eski bağımlılıkları temizleyip yeni değerleri okumaktı. Bu durum, bağımlılık geçersizliğinin kaydedilmediği temiz bir durumda geçersiz kılma içeren bir yarış koşuluna neden oldu.

    Bu değişiklik, geçersiz kılma işleminin her zaman geçerli bir durumda gerçekleşmesini sağlayacak şekilde, türetilmiş durum okuma ve bağımlılık temizleme işlemlerini yeniden sıralar. (c472be6)

Sürüm 1.5.0-alpha03

19 Nisan 2023

androidx.compose.runtime:runtime-*:1.5.0-alpha03 yayınlandı. 1.5.0-alpha03 sürümü bu kaydetmeleri içerir.

API Değişiklikleri

  • Bir Android penceresi için oluşturulan oluşturucu artık, ON_STOP bildirimi aldığında tüm besteler yerine yalnızca withFrameNanos için yapılan aramaları engelleyecek. Bu, durdurulan etkinliklerle ilişkili pencerelerin veri değişiklikleri için yeniden derlemeye devam edeceği ancak animasyonların veya withFrameNanos diğer çağrılarının engelleyeceği anlamına gelir. (Id9e7f, b/240975572)

Hata Düzeltmeleri

  • Anlık görüntü listesinde ve 5c1a425 haritasındaki olası kilitlenmeyi düzeltin
  • Efektleri uygulamadan önce LayoutNode için devre dışı bırakma geri çağırmaları yürütün 3784073
  • Yeniden başlatılan lambdas ea81df9 için değiştirilen işaretleri düzeltme
  • 73fd4d8 düğümleri olan Composable için canlı düzenleme regresyonunu düzeltme
  • ON_STOP, ae276f1 bestesi yerine kare saat yayınlarını duraklatmalıdır
  • SnapshotStateObserver kapsamlarını değiştirilmemiş türetilmiş durumlar için geçersiz kılın 84d9b1c
  • Besteleri atarken olası kilitlenmeleri giderme 28761fc
  • Bir alt besteye taşınan içeriği düzeltme 92d4156

Sürüm 1.5.0-alpha02

5 Nisan 2023

androidx.compose.runtime:runtime-*:1.5.0-alpha02 yayınlandı. 1.5.0-alpha02 sürümü bu kaydetmeleri içerir.

Yeni Özellikler

  • Kotlin’in getValue operatörü artık composable olabilir (f174f6e)

Hata Düzeltmeleri, Performans İyileştirmeleri

  • Erişilemez durum kayıtlarına sahip durum nesnelerinin kayıtlarının üzerine yaz (c986960)
  • Grupları değerlendirirken doğru kapsamdaki oluşturucuyu kullanın (9a5e5b6)
  • Düğüm gruplarını sonlandırırken endToMarker() sorununu düzeltin. (d71d980)
  • Devre dışı bırakma kontrolü için mevcut SlotWriter grubunu kullan (a0b518b)
  • Anlık görüntü geçersiz kılmalarını depolamak için IdentityArraySet kullanın (7f60cca)
  • SlotTable.moveSlotGapTo() içindeki fill öğesini kaldırın ve kapanışa taşıyın (81f9935)
  • Taşınabilir içerik taşınırken eksik geçersiz kılmaları düzeltme (1d7c024)
  • Taşınan taşınabilir içerikle ilgili geçersiz kılma işlemlerini derhal düzeltme (8676618)
  • Anlık görüntü gözlemleri için ayırmaları azaltın (5bc535f)

Sürüm 1.5.0-alpha01

22 Mart 2023

androidx.compose.runtime:runtime-*:1.5.0-alpha01 yayınlandı. 1.5.0-alpha01 sürümü bu kaydetmeleri içerir.

Yeni Özellikler

  • Modifier.Nodes ürününün eş yordamları başlatmasına izin vermek için Modifier.Node#coroutineScope ekler (I76ef9)
  • CompositionLocalConsumerModifierNode arayüzünü uygulayarak Modifier.Nodes uygulamasının CompositionLocals okumasına izin verin. (Ib44df)

Sürüm 1.4

Sürüm 1.4.3

3 Mayıs 2023

androidx.compose.runtime:runtime-*:1.4.3 hiçbir değişiklik yapılmadan yayınlandı.

Sürüm 1.4.2

19 Nisan 2023

androidx.compose.runtime:runtime-*:1.4.2 yayınlandı. Sürüm 1.4.2 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • Anlık görüntü listesinde ve 2eb6570 haritasındaki olası kilitlenmeyi düzeltin

  • Değişiklik durum kaydına doğrudan yazma işlemiyle eş zamanlı olarak gerçekleştirilirse SnapshotStateList veya SnapshotStateMap öğesine içerik eklendiğinde bir kilitlenme yaşanabilir. Bu durumun, kullanılmayan kayıtları serbest bırakmak için doğrudan yazma özelliğini kullanan 93fcae828b tarafından kullanıma sunulan değişikliklerle karşılaşma olasılığı önemli ölçüde daha yüksektir.

  • Kilitler, artık harita veya liste kilidi basılı tutulduğunda anlık görüntü kilidi açılmaya çalışılmayacak şekilde sıralanmıştır.

Sürüm 1.4.1

5 Nisan 2023

androidx.compose.runtime:runtime-*:1.4.1 yayınlandı. Sürüm 1.4.1 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • Düğüm gruplarını sonlandırırken endToMarker() sorununu düzeltin. d71d980

Sürüm 1.4.0

22 Mart 2023

androidx.compose.runtime:runtime-*:1.4.0 yayınlandı. 1.4.0 sürümü bu kaydetmeleri içerir.

1.3.0'dan bu yana önemli değişiklikler

  • İlk beste için LiveData tarafından sağlanan başlatılmış değeri kullan 3680e25
  • Oluşturma düğümlerinin yaşam döngüsünü gözlemlemek için ComposeNodeLifecycleCallback ekleyin. 8b6a258
  • ComposableMethod 7b6c7ad mülküne parameterTypes mülkü ekle

Hata Düzeltmeleri ve Performans iyileştirmeleri

  • SnapshotStateObserver içindeki her iki kapsam dizinini de temizleyin 29f4a3e
  • Atlanamayan lambdaların gövdesine gereken grupları ekleyin 7d06752
  • 93fcae8 anlık görüntü durumunun bellek referans özelliklerini iyileştirin
  • Yerel kompozisyon aramalarında boks imajını kaldırma 0875717
  • Yeniden kullanılamayan düğüm grupları için doğru anahtarı kullanın: 6388d8d
  • SnapshotStateObserver öğesini yinelemeli ve eş zamanlı olarak korur 98cb6ba
  • IdentityArraySet "get" işlevine giriş dizini sınırı kontrolü eklendi yöntem 35a77d3
  • Oluşturma modülünü, ViewTreeLifecycleOwner uzantılarını 21c2122 kullanacak şekilde güncelleyin
  • Recomposer kareyi bitirdikten sonra uygulama bildirimleri gönder. 98f2641
  • Recomposer'ı iptal ederken 8f8656f dizin dışı kilitlenme sorununu düzeltme
  • Beste'nin üst sağlayıcıları 9526fcc değiştiyse her zaman yeniden oluşturmayı zorunlu kıl
  • İptal edilen İşler a55f7ed için düzenleyici toleransı
  • Çok sayıda besteci için geçersiz kılma işlemlerini iyileştirme 9b7ed67
  • Yerel olmayan iadeler için kapanış grupları oluşturma b6f590c sorununu düzeltme

Sürüm 1.4.0-rc01

8 Mart 2023

androidx.compose.runtime:runtime-*:1.4.0-rc01 yayınlandı. Sürüm 1.4.0-rc01 bu kaydetmeleri içerir.

Hata Düzeltmeleri

Sürüm 1.4.0-beta02

22 Şubat 2023

androidx.compose.runtime:runtime:1.4.0-beta02 ve androidx.compose.runtime:runtime-saveable:1.4.0-beta02 serbest bırakıldı. Sürüm 1.4.0-beta02 bu kaydetmeleri içerir.

Sürüm 1.4.0-beta01

8 Şubat 2023

androidx.compose.runtime:runtime-*:1.4.0-beta01 yayınlandı. Sürüm 1.4.0-beta01 bu kaydetmeleri içerir.

API Değişiklikleri

  • Compose düğümlerinin (I3731b) yaşam döngüsünün gözlemlenmesine olanak tanıyan ComposeNodeLifecycleCallback eklendi
  • Bu işlev yalnızca testte güvenli bir şekilde çağrılabileceği için @TestOnly, Composer.disableSourceInformation() bölümüne eklendi. (I896c8)

Hata Düzeltmeleri

  • Kompozisyon yerel aramalarında boksu kaldırın (62f66a)
  • Anlık görüntü durumunun bellek referans özelliklerini iyileştirme (dfb451)

Sürüm 1.4.0-alpha05

25 Ocak 2023

androidx.compose.runtime:runtime:1.4.0-alpha05 ve androidx.compose.runtime:runtime-saveable:1.4.0-alpha05 serbest bırakıldı. 1.4.0-alpha05 sürümü bu kaydetmeleri içerir.

API Değişiklikleri

  • Satır içi/kullanımdan kaldırılan gizli işlevlerin diğer tür/boşluk özellikleri (I24f91)

Sürüm 1.4.0-alpha04

11 Ocak 2023

androidx.compose.runtime:runtime-*:1.4.0-alpha04 yayınlandı. 1.4.0-alpha04 sürümü bu kaydetmeleri içerir.

API Değişiklikleri

  • TestMonotonicFrameClock artık doğru deneysel ek açıklamayı kullanıyor. (I95c9e)

Hata Düzeltmeleri

  • SnapshotStateObserver öğesini yinelenen ve eşzamanlı uygulamalardan koruyun (d902fb)

Sürüm 1.4.0-alpha03

7 Aralık 2022

androidx.compose.runtime:runtime-*:1.4.0-alpha03 yayınlandı. 1.4.0-alpha03 sürümü bu kaydetmeleri içerir.

API Değişiklikleri

  • ComposableMethod sınıfına java.lang.reflect.Method#getParameterTypes() benzeri yeni bir herkese açık yöntem ekleniyor (Iab0c3)

Hata Düzeltmeleri

  • Anlık görüntü uygulama bildirimleri artık Recomposer tarafından değişikliklerin uygulanması tamamlandıktan sonra gönderiliyor. (Iad6c0, b/222093277)

Sürüm 1.4.0-alpha02

9 Kasım 2022

androidx.compose.runtime:runtime-*:1.4.0-alpha02 yayınlandı. 1.4.0-alpha02 sürümü bu kaydetmeleri içerir.

Sürüm 1.4.0-alpha01

24 Ekim 2022

androidx.compose.runtime:runtime-*:1.4.0-alpha01 yayınlandı. 1.4.0-alpha01 sürümü bu kaydetmeleri içerir.

API Değişiklikleri

  • SnapshotStateList ve SnapshotStateMap, artık saygılı bir şekilde toList() ve toMap() kullanımlarına açıkça sahip. Bu yöntemler, içeriklerini depolamak için kullanılan dahili sabit verileri döndürdüğünden, bir kopya oluşturmadan mevcut içeriklerini döndürür. Bu değer, örneğin verilerin kopyalanmasına gerek kalmadan snapshotFlow kullanarak bir değer akışı oluşturmak için kullanılabilir. (Ica2bd)

Sürüm 1.3

Sürüm 1.3.3

11 Ocak 2023

androidx.compose.runtime:runtime-*:1.3.3 yayınlandı. 1.3.3 sürümü bu kaydetmeleri içerir.

  • 1.3.2'den bu yana değişiklik yok

Sürüm 1.3.2

7 Aralık 2022

androidx.compose.runtime:runtime-*:1.3.2 yayınlandı. 1.3.2 sürümü bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • androidx.compose.ui 1.3.2 sürümünü destekleyecek şekilde güncellendi

Sürüm 1.3.1

9 Kasım 2022

androidx.compose.runtime:runtime-*:1.3.1 yayınlandı. Sürüm 1.3.1 bu kaydetmeleri içerir.

Sürüm 1.3.0

24 Ekim 2022

androidx.compose.runtime:runtime-*:1.3.0 yayınlandı. 1.3.0 sürümü bu kaydetmeleri içerir.

1.2.0'dan bu yana önemli değişiklikler

İstisnaları ele alma / canlı düzenleme desteği

Beste İzleme

Composable Reflection API'ler

Çalışma Zamanı Düzeltmeleri

Anlık Görüntü Sistemi

Sürüm 1.3.0-rc01

5 Ekim 2022

androidx.compose.runtime:runtime-*:1.3.0-rc01 yayınlandı. Sürüm 1.3.0-rc01 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • Alan tablosundan gelen ArrayIndexOutOfBoundsException düzeltildi (b/249076084)

Sürüm 1.3.0-beta03

21 Eylül 2022

androidx.compose.runtime:runtime-*:1.3.0-beta03 yayınlandı. Sürüm 1.3.0-beta03 bu kaydetmeleri içerir.

Davranış Kırıcı Değişim

  • Parametre remember ve rememberCoroutineScope olarak değiştirildi ve crossinline olarak değiştirildi. Erken iadeye izin vermek yerine bu seçeneği kullanarak erken iadeler için bir hata raporlanır, bu da daha sonra dahili bir hatanın bildirilmesine neden olur.
  • Bu değişiklik, potansiyel olarak yeni derleyici hatalarının bildirilmesine yol açabilir. Bu hatalar, bu işlevlere iletilen lambdalardan yerel olmayan döndürmelerin kaldırılmasını gerektirir. (Ibea62)

Sürüm 1.3.0-beta02

7 Eylül 2022

androidx.compose.runtime:runtime-*:1.3.0-beta02 yayınlandı. Sürüm 1.3.0-beta02 bu kaydetmeleri içerir.

Hata Düzeltmeleri

Sürüm 1.3.0-beta01

24 Ağustos 2022

androidx.compose.runtime:runtime-*:1.3.0-beta01 yayınlandı. Sürüm 1.3.0-beta01 bu kaydetmeleri içerir.

API Değişiklikleri

  • Bu API'yi kullanan geliştirici araçlarının bir beste alt grubunu kimliğini kullanarak hızlıca bulmasına olanak tanımak için CompositionData uygulamasına find yöntemi eklendi. (I5794f)

Sürüm 1.3.0-alpha03

10 Ağustos 2022

androidx.compose.runtime:runtime-*:1.3.0-alpha03 yayınlandı. 1.3.0-alpha03 sürümü bu kaydetmeleri içerir.

Sürüm 1.3.0-alpha02

27 Temmuz 2022

androidx.compose.runtime:runtime-*:1.3.0-alpha02 yayınlandı. 1.3.0-alpha02 sürümü bu kaydetmeleri içerir.

API Değişiklikleri

  • ComposerKt.traceEventStart(Int, String), geriye dönük uyumluluk için yeniden eklendi (I6e6de)

Sürüm 1.3.0-alpha01

29 Haziran 2022

androidx.compose.runtime:runtime-*:1.3.0-alpha01 yayınlandı. 1.3.0-alpha01 sürümü bu kaydetmeleri içerir.

API Değişiklikleri

  • Yardımcı program işlevselliğini çalışma zamanına taşıma (I4f729)

Sürüm 1.2

Sürüm 1.2.1

10 Ağustos 2022

androidx.compose.runtime:runtime-*:1.2.1 yayınlandı. Sürüm 1.2.1 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • Düzeltilen bellek sızıntısı: Şeffaf anlık görüntülerden oluşturulan iç içe yerleştirilmiş anlık görüntüleri ortadan kaldırın b/239603305

Sürüm 1.2.0

27 Temmuz 2022

androidx.compose.runtime:runtime-*:1.2.0 yayınlandı. 1.2.0 sürümü bu kaydetmeleri içerir.

1.1.0 tarihinden bu yana önemli değişiklikler

  • Compose Çalışma Zamanı'nda 1.2.0'da kullanıma sunulan çeşitli özellikler ve stabilize edici birçok hata düzeltmesi bulunuyordu. En önemli yeni özellik, paylaşılan öğe geçişleri gibi karmaşık bir kullanıcı deneyimi sunmak için kullanılabilecek movableContentOfAPI'nin kullanıma sunulmasıydı. movableContentOf API'si, composable lambda'yı durumunu ve karşılık gelen düğümleri çağrıldığı yeni konuma taşıyan bir lambda'ya dönüştürür. Önceki çağrı besteden ayrıldığında durum geçici olarak korunur ve besteye yeni bir lambda çağrısı girerse durum ve ilişkili Düğümler yeni çağrının konumuna taşınır. Yeni arama eklenmezse durum kalıcı olarak kaldırılır ve gözlemcilerin bilgilendirildiğini unutmayın.

  • Bir movableContentOf lambda aynı bileşimde birden çok kez çağrılırsa her çağrı için yeni durum ve düğümler oluşturulur ve çağrılar besteden çıkıp yeni çağrılar girdikçe durum, ilk çıkış çağrılarından çağrıldıkları sırayla giriş çağrılarına taşınır. Yeni aramalarla hak talebinde bulunulmayan tüm durumlar kalıcı olarak kaldırılır.

  • Buna ve diğer birkaç yeni özelliğe ek olarak, çalışma zamanı ve Anlık görüntü durumu sistemini dengelemek için çok zaman harcandı. Çeşitli bellek sızıntıları kaldırıldı ve kod yolları optimize edildi.

  • Değişikliklerin özet bir listesini aşağıda bulabilirsiniz:

1.2 Yeni Özellikler

1.2 bölgesindeki performans

1.2 İçin Hata Düzeltmeleri

Sürüm 1.2.0-rc03

29 Haziran 2022

androidx.compose.runtime:runtime-*:1.2.0-rc03 yayınlandı. Sürüm 1.2.0-rc03 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • Türetilmiş durum gözlemleri, daha önce birlikte yeniden oluşturma kapsamı ve yapısından koşulsuz olarak kaldırılmıştı ve bu da türetilmiş durumu hâlâ gözlemlemeye devam edebilecek diğer kapsamları bozmuştu. Bu değişiklik, türetilmiş durum örneklerini yalnızca artık diğer kapsamlar tarafından gözlemlenmiyorsa kaldırır. (b/236618362)

Sürüm 1.2.0-rc02

22 Haziran 2022

androidx.compose.runtime:runtime-*:1.2.0-rc02 yayınlandı. Sürüm 1.2.0-rc02 bu kaydetmeleri içerir.

Sürüm 1.2.0-rc01

15 Haziran 2022

androidx.compose.runtime:runtime-*:1.2.0-rc01 yayınlandı. Sürüm 1.2.0-rc01 bu kaydetmeleri içerir.

API Değişiklikleri

  • Oluşturma kitaplıklarındaki arayüzler artık jdk8 varsayılan arayüz yöntemleri (I5bcf1) kullanılarak oluşturulmuştur.

Sürüm 1.2.0-beta03

1 Haziran 2022

androidx.compose.runtime:runtime-*:1.2.0-beta03 yayınlandı. Sürüm 1.2.0-beta03 bu kaydetmeleri içerir.

Sürüm 1.2.0-beta02

18 Mayıs 2022

androidx.compose.runtime:runtime-*:1.2.0-beta02 yayınlandı. Sürüm 1.2.0-beta02 bu kaydetmeleri içerir.

Sürüm 1.2.0-beta01

11 Mayıs 2022

androidx.compose.runtime:runtime-*:1.2.0-beta01 yayınlandı. Sürüm 1.2.0-beta01 bu kaydetmeleri içerir.

Yeni Özellikler

  • Bu, 1.2'nin ilk beta sürümüdür.

API Değişiklikleri

  • Deneme amaçlı Snapshot.unsafeEnter/unsafeLeave (I108f3) eklendi
  • Deneysel Snapshot.asContextElement() API'si (Iff072) eklendi
  • @ComposableTargetMarker tarafından işaretlenen @ComposableTarget ek açıklaması ve ek açıklamaları artık @file önekiyle dosya kapsamında kullanılabilir. Dosya kapsamında bir hedef ek açıklama kullanılması, derleyicinin dosyadaki tüm composable işlevlerin, ilişkili uygulayıcıyı hedeflediğini varsaymasına neden olur. Örneğin, @file:UiComposable kullanıldığında tüm @Composable işlevlerinin Oluştur kullanıcı arayüzü uygulayıcısını hedeflediği açıklanır. Başka bir uygulayıcıyı hedeflemesi gereken bir işlev, istenen uygulayıcı için hedef işaretçi ek açıklamasını açıkça sağlamalıdır. (I40804)

Sürüm 1.2.0-alpha08

20 Nisan 2022

androidx.compose.runtime:runtime-*:1.2.0-alpha08 yayınlandı. 1.2.0-alpha08 sürümü bu kaydetmeleri içerir.

API Değişiklikleri

  • TracingInProgress, CompositionTracer arayüzüne eklendi. (Ic6f12)
  • recomposeScopeIdentity öğesini Composer'a ekle (I0c873)
  • İzleme API'leri (Composer.setTracer) OptIn(InternalComposeTracingApi) ile kısıtlandı. (I9187f)
  • Yeniden kullanılabilir içerik için oluşturulan durumun geçerlilik süresi üzerinde daha fazla kontrol sağlayan ResuableContentHost eklendi. Örneğin, bir alt beste geçici olarak kullanılmıyorsa içerik devre dışı bırakılabilir. Bu durumda, bestedeki hatırlanan tüm durum, örneğin, tek kullanımlık tüm efektler gibi tetikleyici durumların unutulmasına yol açabilir. (I2c0f2, b/220322704)

Sürüm 1.2.0-alpha07

6 Nisan 2022

androidx.compose.runtime:runtime-*:1.2.0-alpha07 yayınlandı. 1.2.0-alpha07 sürümü bu kaydetmeleri içerir.

API Değişiklikleri

  • Yeni Snapshot.withoutReadObservation { ... } işlevi eklendi. Kullanıcıların, bu blok sırasında okunan durum değerlerindeki değişikliklere abone olmadan iletilen lambda'yı çalıştırmasına olanak tanır. Anlık görüntü tabanlı iş parçacığı güvenli yazma/okuma işlemlerinden yararlanmak, ancak gereksiz yeniden birleşmeye veya yeniden ölçüme neden olmadan değeri okuyabilmek istediğiniz kullanım durumlarında bu özellikten yararlanabilirsiniz. (I9f365, b/214054486)

Sürüm 1.2.0-alpha06

23 Mart 2022

androidx.compose.runtime:runtime-*:1.2.0-alpha06 yayınlandı. 1.2.0-alpha06 sürümü bu kaydetmeleri içerir.

Sürüm 1.2.0-alpha05

9 Mart 2022

androidx.compose.runtime:runtime-*:1.2.0-alpha05 yayınlandı. 1.2.0-alpha05 sürümü bu kaydetmeleri içerir.

Harici Katkı

  • Kotlinx eş yordamları 1.6.0 (I3366d) kullanılacak şekilde güncellendi

Sürüm 1.2.0-alpha04

23 Şubat 2022

androidx.compose.runtime:runtime-*:1.2.0-alpha04 yayınlandı. 1.2.0-alpha04 sürümü bu kaydetmeleri içerir.

API Değişiklikleri

  • ComposableTarget, ComposableTargetMarker ve eklendi Aşağıdaki durumların derleme zamanı raporlanmasına olanak tanıyan ComposableOpenTarget: composable işlev, olmadığı bir uygulayıcıyı hedefleme olarak adlandırılır tasarladık.

    Çoğu durumda, ek açıklamalar oluşturma sırasında derleyici eklentisidir. Bu nedenle, bu ek açıklamayı doğrudan nadir . Tahmin edilemeyen durumlar, soyut composable işlevler (ör. arayüz yöntemleri), alanları veya değişkenleri composable lambda'lar (yerel değişkenler ve parametreler tahmin edilir), veya ComposeNode ya da ilgili composable işlevleri kullanılırken sorun yaşanmaz.

    Özel uygulayıcılar için ComposeNode veya ReusableComposeNode tarafından CompoableTarget fonksiyon ve diğer herhangi bir composable lambda parametre türleri. Bununla birlikte, ve ComposableTargetMarker ve ardından işaretlenen ek açıklama kullanılır. kullanabilirsiniz.ComposableTarget Oluşturulabilir bir ek açıklama ComposableTargetMarker ile işaretlenen bir Özelliğin tam adını içeren ComposbleTarget class'ı uygulayın. Örnek olarak ComposableTargetMarker bkz. anroidx.compose.ui.UiComposable. (I38f11)

Sürüm 1.2.0-alpha03

9 Şubat 2022

androidx.compose.runtime:runtime-*:1.2.0-alpha03 yayınlandı. 1.2.0-alpha03 sürümü bu kaydetmeleri içerir.

API Değişiklikleri

  • Bir composable'a dönüştüren movableContentOf eklendi lambdayı, durumunu hareket ettiren bir lambdaya ve bunlara karşılık gelen düğümlere çağrıldığı yeni bir konuma taşınır. Önceki görüşme ayrıldığında durum geçici olarak korunur ve yeni bir çağrı yapılırsa önce besteye, ardından duruma yeni çağrının konumuna taşınır. Yeni arama yoksa durumun kalıcı olarak kaldırıldığını ve gözlemcilerin bildirim alır.

    movableContentOf lambda aynı her çağrı için bileşim, yeni durum ve düğümler oluşturulur. çağrılar besteden çıkar ve yeni çağrılar girildiğinde durum taşınır ilk çağrıdan ayrılan ilk çağrılardan, gelen aramalara kadar çağrılır. Yeni aramalarla hak talebinde bulunulmayan tüm durumlar kaldırıldı kalıcı olarak tartın. (Ib4850)

  • Araçların composable işlevlerin daha ayrıntılı izlenmesini sağlar. Derleyici artık tracing API'ye kaynak içeren çağrılar oluşturuyor. ekleyebilirsiniz. (Ib0eb5)

    Bu çağrıları ve ilişkili kaynağı kaldırmak için: bilgileri içeren bir sürüm kullanıyorsanız aşağıdaki ProGuard kuralını ekleyin:

      -assumenosideeffects public class androidx.compose.runtime.ComposerKt {
          boolean isTraceInProgress();
          void traceEventStart(int,java.lang.String);
          void traceEventEnd();
      }
    
  • Araçlara eğitim sağlayan InternalComposeScope ekleyin dört farklı teknik bulunur. (I07a3f)

Sürüm 1.2.0-alpha02

26 Ocak 2022

androidx.compose.runtime:runtime-*:1.2.0-alpha02 yayınlandı. 1.2.0-alpha02 sürümü bu kaydetmeleri içerir.

Sürüm 1.2.0-alpha01

12 Ocak 2022

androidx.compose.runtime:runtime-*:1.2.0-alpha01 yayınlandı. Sürüm 1.2.0-alpha01 bu kaydetmeleri içerir.

API Değişiklikleri

  • Oluşturma işlemi için CompositionData öğesine identity alanı eklendi değişmeyen kimlikler oluşturabilirsiniz. (Ic116e)

Bağımlılık Güncellemeleri

  • Artık Kotlin 1.6.10 bağlı.

Sürüm 1.1

Sürüm 1.1.1

23 Şubat 2022

androidx.compose.runtime:runtime-*:1.1.1 yayınlandı. Sürüm 1.1.1 bu kaydetmeleri içerir.

Hata Düzeltmeleri

Sürüm 1.1.0

9 Şubat 2022

androidx.compose.runtime:runtime-*:1.1.0 yayınlandı. 1.1.0 sürümü bu kaydetmeleri içerir.

1.0.0'dan bu yana önemli değişiklikler

  • Android 12 Fazla kaydırma efekti için kararlı destek
  • Dokunma hedefi boyutlandırmasıyla ilgili iyileştirmeler
  • Compose 1.0'da, Materyal bileşenlerinin düzen alanlarını dokunma hedefi boyutu ile ilgili Materyal erişilebilirlik yönergelerine uyacak şekilde genişleteceğini unutmayın. Örneğin, düğmenin boyutunu daha küçük olacak şekilde ayarlasanız bile düğmenin dokunma hedefi en az 48x48dp boyutuna genişletilir. Bu, Oluştur Materyalini, Materyal Tasarım Bileşenleri ile aynı davranışla uyumlu hale getirir ve Görünümler ile Oluştur'u birlikte kullandığınızda tutarlı davranış sağlar. Bu değişiklik, Materyal Oluşturma bileşenlerini kullanarak kullanıcı arayüzünüzü oluşturduğunuzda, dokunma hedefi erişilebilirliğiyle ilgili minimum gereksinimlerin karşılanmasını da sağlar.
  • Gezinme Rayı için kararlı destek
  • Daha önce deneysel olan bir dizi API'yi kararlı sürüme geçirir
  • Kotlin'in daha yeni sürümleri için destek

Sürüm 1.1.0-rc03

26 Ocak 2022

androidx.compose.runtime:runtime-*:1.1.0-rc03 yayınlandı. Sürüm 1.1.0-rc03 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • 1.1.0-rc03 Materyalini desteklemek için güncellendi

Sürüm 1.1.0-rc01

15 Aralık 2021

androidx.compose.runtime:runtime-*:1.1.0-rc01 yayınlandı. Sürüm 1.1.0-rc01 bu kaydetmeleri içerir.

Sürüm 1.1.0-beta04

1 Aralık 2021

androidx.compose.runtime:runtime-*:1.1.0-beta04 yayınlandı. Sürüm 1.1.0-beta04 bu kaydetmeleri içerir.

Yeni Özellikler

  • Kotlin 1.6.0 ile uyumlu olacak şekilde güncellendi

Sürüm 1.1.0-beta03

17 Kasım 2021

androidx.compose.runtime:runtime-*:1.1.0-beta03 yayınlandı. Sürüm 1.1.0-beta03 bu kaydetmeleri içerir.

Sürüm 1.1.0-beta02

3 Kasım 2021

androidx.compose.runtime:runtime-*:1.1.0-beta02 yayınlandı. Sürüm 1.1.0-beta02 bu kaydetmeleri içerir.

API Değişiklikleri

  • Anlık görüntü kodu birden fazla dosyaya bölündü ama hiçbiri aynı JVM sınıfında yaşar. (Ic6c98)

Sürüm 1.1.0-beta01

27 Ekim 2021

androidx.compose.runtime:runtime-*:1.1.0-beta01 yayınlandı. Sürüm 1.1.0-beta01 bu kaydetmeleri içerir.

Sürüm 1.1.0-alpha06

13 Ekim 2021

androidx.compose.runtime:runtime-*:1.1.0-alpha06 yayınlandı. 1.1.0-alpha06 sürümü bu kaydetmeleri içerir.

API Değişiklikleri

  • InternalCompilerApi, şu özelliklere sahip Composer yöntemlerinden kaldırıldı: modüller arası olarak çağrılması gerekir (I1aa0b)
  • Recomposer.state kullanımdan kaldırıldı ve şu şekilde değiştirildi: türünü bir StateFlow olarak değiştirmek için Recomposer.currentState (Ic2ab3, b/197773820)

Sürüm 1.1.0-alpha05

29 Eylül 2021

androidx.compose.runtime:runtime-*:1.1.0-alpha05 yayınlandı. 1.1.0-alpha05 sürümü bu kaydetmeleri içerir.

Sürüm 1.1.0-alpha04

15 Eylül 2021

androidx.compose.runtime:runtime-*:1.1.0-alpha04 yayınlandı. 1.1.0-alpha04 sürümü bu kaydetmeleri içerir.

Sürüm 1.1.0-alpha03

1 Eylül 2021

androidx.compose.runtime:runtime-*:1.1.0-alpha03 yayınlandı. 1.1.0-alpha03 sürümü bu kaydetmeleri içerir.

Yeni Özellikler

  • Oluşturma Derleyicisi artık Oluşturma Çalışma Zamanı'nın (1.0) eski sürümlerini destekliyor. Bu değişiklikten önce, Oluşturma Derleyicisi yalnızca aynı sürüm veya sonraki bir sürümün Oluşturma Çalışma Zamanı ile uyumluydu. Bu değişiklikten sonra, Oluşturma Derleyicisi, Oluşturma Çalışma Zamanı'nın (1.0) eski bir sürümüyle uyumlu hale gelecektir. (aosp/1796968)
  • Oluşturma 1.1.0-alpha03, Kotlin 1.5.30 öğesine bağlı olacak şekilde güncellendi. (I74545)

Sürüm 1.1.0-alpha02

18 Ağustos 2021

androidx.compose.runtime:runtime-*:1.1.0-alpha02 yayınlandı. 1.1.0-alpha02 sürümü bu kaydetmeleri içerir.

Sürüm 1.1.0-alpha01

4 Ağustos 2021

androidx.compose.runtime:runtime-*:1.1.0-alpha01 yayınlandı. Sürüm 1.1.0-alpha01 bu kaydetmeleri içerir.

Sürüm 1.0

Sürüm 1.0.5

3 Kasım 2021

androidx.compose.runtime:runtime-*:1.0.5 yayınlandı. 1.0.5 sürümü bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • TüretilmişStateOf örneklerindeki kilitlenme izleme sorunu düzeltildi. (aosp/1792247)

Sürüm 1.0.4

13 Ekim 2021

androidx.compose.runtime:runtime-*:1.0.4 yayınlandı. 1.0.4 sürümü bu kaydetmeleri içerir.

Bağımlılık Güncellemeleri

  • Kotlin'e (1.5.31) bağlı olarak güncellendi

Sürüm 1.0.3

29 Eylül 2021

androidx.compose.runtime:runtime-*:1.0.3 yayınlandı. 1.0.3 sürümü bu kaydetmeleri içerir.

Bağımlılık Güncellemeleri

  • Kotlin'e (1.5.30) bağlı olarak güncellendi

Sürüm 1.0.2

1 Eylül 2021

androidx.compose.runtime:runtime-*:1.0.2 yayınlandı. 1.0.2 sürümü bu kaydetmeleri içerir.

Compose 1.0.2 sürümünü desteklemek üzere güncellendi. Oluşturulan 1.0.2, Kotlin 1.5.21 ile hâlâ uyumlu.

Sürüm 1.0.1

4 Ağustos 2021

androidx.compose.runtime:runtime-*:1.0.1 yayınlandı. Sürüm 1.0.1 bu kaydetmeleri içerir.

Bağımlılık Güncellemeleri

  • Kotlin 1.5.21 kaynağına bağlı olarak güncellendi.

Sürüm 1.0.0

28 Temmuz 2021

androidx.compose.runtime:runtime-*:1.0.0 yayınlandı. 1.0.0 sürümü bu kaydetmeleri içerir.

1.0.0'ın temel özellikleri

Bu, Compose'un ilk kararlı sürümüdür. Daha fazla bilgi için lütfen resmi Compose Sürüm bloguna göz atın!

Bilinen Sorunlar

  • Android Studio Bumblebee Canary 4 veya AGP 7.1.0-alpha04/7.1.0-alpha05 kullanıyorsanız şu kilitlenmeyle karşılaşabilirsiniz:

      java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"
    

    Sorunu düzeltmek için build.gradle dosyanızda minSdkVersion değerini geçici olarak 24'ün üzerine çıkarın. Bu sorun, Android Studio Bumblebee ve AGP'nin 7.1 sonraki sürümünde düzeltilecektir. (b/194289155)

Sürüm 1.0.0-rc02

14 Temmuz 2021

androidx.compose.runtime:runtime-*:1.0.0-rc02 yayınlandı. Sürüm 1.0.0-rc02 bu kaydetmeleri içerir.

  • SnapshotStateObserver içindeki yarış koşulları spurratic hatasına neden oldu NullPointerExceptions. (aosp/1763445, aosp/1758105, b/192677711)
  • java.lang.IllegalStateException: Reading a state that was created after the snapshot was taken or in a snapshot that has not yet been applied kilitlenmesine neden olan çalışma zamanı anlık görüntüleriyle ilgili sorunlar düzeltildi. (b/193006595, b/192570897)

Sürüm 1.0.0-rc01

1 Temmuz 2021

androidx.compose.runtime:runtime-*:1.0.0-rc01 yayınlandı. Sürüm 1.0.0-rc01 bu kaydetmeleri içerir.

Sürüm 1.0.0-beta09

16 Haziran 2021

androidx.compose.runtime:runtime-*:1.0.0-beta09 yayınlandı. Sürüm 1.0.0-beta09 bu kaydetmeleri içerir.

Eklenen Profil Kuralları

Bu sürüm, aşağıdaki oluşturma modüllerine (I14ed6) profil kuralları ekler:

  • androidx.compose.animation
  • androidx.compose.animation-core
  • androidx.compose.temel
  • androidx.compose.foundation-layout
  • androidx.compose.malzeme
  • androidx.compose.material-ripple
  • androidx.compose.runtime
  • androidx.compose.ui
  • androidx.compose.ui.geometry
  • androidx.compose.ui.grafikler
  • androidx.compose.ui.metin
  • androidx.compose.ui.metin
  • androidx.compose.ui.unit
  • androidx.compose.ui.util

Profil kuralları nedir?

  • Bir kitaplığa ilişkin profil kuralları, src/main veya eşdeğer dizinde bulunan bir metin dosyasında (baseline-prof.txt) belirtilir. Dosya, her satır için bir kural belirtir. Bu durumda kural, kitaplıktaki yöntemler veya sınıflarla eşleştirmeye yönelik bir kalıptır. Bu kuralların söz dizimi, adb shell profman --dump-classes-and-methods ... kullanılırken kullanılan, okunabilir ART profili biçiminin üst kümesidir. Bu kurallar, yöntemleri veya sınıfları hedeflemek için iki biçimden birini alır.

  • Bir yöntem kuralı aşağıdaki kalıba sahip olur:

    <FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
    
  • Sınıf kuralı da aşağıdaki kalıba sahip olur:

    <CLASS_DESCRIPTOR>
    
  • Burada <FLAGS>, bu yöntemin "Popüler", "Başlangıç" veya "Başlangıç Sonrası" olarak işaretlenip işaretlenmeyeceğini belirtmek için H, S ve P karakterlerinden bir veya daha fazlasını göstermektedir.

  • <CLASS_DESCRIPTOR>, hedeflenen yöntemin ait olduğu sınıfın tanımlayıcısıdır. Örneğin, androidx.compose.runtime.SlotTable sınıfının tanımlayıcısı Landroidx/compose/runtime/SlotTable; olur.

  • <METHOD_SIGNATURE>, yöntemin imzasıdır ve yöntemin adını, parametre türlerini ve döndürme türlerini içerir. Örneğin, LayoutNode sitesindeki fun isPlaced(): Boolean yöntemi isPlaced()Z imzasına sahiptir.

  • Tek bir kuralın birden fazla yöntem veya sınıfı kapsaması için bu kalıplar joker karakterler (**, * ve ?) içerebilir.

Kurallar ne işe yarar?

  • H işaretine sahip bir yöntem, bu yöntemin "çalışıyor" olduğunu gösterir yöntemidir ve önceden derlenmesi gerekir.

  • S işaretine sahip bir yöntem, bu yöntemin başlangıçta çağrılan bir yöntem olduğunu ve derleme ve başlatma sırasında yöntemi yorumlama maliyetinden kaçınmak için önceden derlenmesi gerektiğini belirtir.

  • P işaretine sahip bir yöntem, bunun başlatmadan sonra çağrılan bir yöntem olduğunu gösterir.

  • Bu dosyada bulunan bir sınıf, başlangıç sırasında kullanıldığını ve sınıf yükleme maliyetinden kaçınmak için yığına önceden ayrılması gerektiğini belirtir.

Nasıl çalışır?

  • Kitaplıklar, AAR yapılarında paketlenecek bu kuralları tanımlayabilir. Bu yapıları içeren bir uygulama oluşturulduğunda, bu kurallar birleştirilir ve birleştirilmiş kurallar, uygulamaya özel küçük bir ikili ART profili oluşturmak için kullanılır. ART, daha sonra uygulamanın belirli bir alt kümesini önceden derleyerek uygulamanın performansını, özellikle de ilk çalıştırmada performansını iyileştirmek için uygulama cihazlara yüklendiğinde bu profilden yararlanabilir. Bunun, hata ayıklaması yapılabilecek uygulamalar üzerinde herhangi bir etkisi olmayacağını unutmayın.

Sürüm 1.0.0-beta08

2 Haziran 2021

androidx.compose.runtime:runtime-*:1.0.0-beta08 yayınlandı. Sürüm 1.0.0-beta08 bu kaydetmeleri içerir.

API Değişiklikleri

  • State<T> artık State<out T> (I69049) oldu
  • Yeniden oluşturmayı etkinleştirmek için ControlledComposition API değişikliği değişiklik gösterir. (Iaafd1, b/184173932)

Sürüm 1.0.0-beta07

18 Mayıs 2021

androidx.compose.runtime:runtime-*:1.0.0-beta07 yayınlandı. Sürüm 1.0.0-beta07 bu kaydetmeleri içerir.

API Değişiklikleri

  • İzin verilen yeni oluşturma derleyici API'leri eklendi derleyici tarafından üretilen kaynak bilgileri kaynak sadeleştirme sırasında kaldırıldı. (Ia34e6)
  • Şunu yeniden kullanmayı deneyen ReusableContent özelliğini sunar: düğümleri yeniden yüklemek yerine içeriğin değiştirilmelidir. Anahtar değiştirildiğinde, önceki değerler içeriğin alan tablosu, oluşturulan düğümleri ve bu değeri güncellemek için kullanılan değerleri düğüm.

    Düğümü yeniden kullanacak ReusableComposeNode özelliğini sunar parametresinin değeri, ComposeNode için yapıldığı gibi değiştirilir. (I1dd86)

  • @ComposeCompilerApi artık @RequiresOptIn (Iab690) değil

Hata Düzeltmeleri

  • LazyColumn/Row, önceden kaydırılmış olsalar bile artık önceden görünür olan en fazla 2 öğeyi etkin (imha edilmez) tutacak. Bu, kaydırma performansını artıran yeni bir öğe oluşturmamız gerektiğinde bileşenin etkin alt besteleri yeniden kullanmasına olanak tanır. (Ie5555)

Sürüm 1.0.0-beta06

5 Mayıs 2021

androidx.compose.runtime:runtime-*:1.0.0-beta06 yayınlandı. Sürüm 1.0.0-beta06 bu kaydetmeleri içerir.

API Değişiklikleri

  • @ComposeCompilerApi artık @RequiresOptIn (Iab690) değil

Sürüm 1.0.0-beta05

21 Nisan 2021

androidx.compose.runtime:runtime-*:1.0.0-beta05 yayınlandı. Sürüm 1.0.0-beta05 bu kaydetmeleri içerir.

API Değişiklikleri

  • Anlık görüntü okuma ve yazma işlemlerini kaydetmek için@InternalComposeApi kaldırıldı (Id134d)

Hata Düzeltmeleri

  • ui-test-manifest ve ui-tooling-data artık Android 12 (I6f9de, b/184718994) ile uyumlu

Sürüm 1.0.0-beta04

7 Nisan 2021

androidx.compose.runtime:runtime-*:1.0.0-beta04 yayınlandı. Sürüm 1.0.0-beta04 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • Bu değişiklikten önce, yerel composable işlevler parametrelerine göre atlanabilirdi. Bu değişiklikten sonra hiçbir yerel composable işlevi atlanmayacaktır. Bu değişiklik, yerel işlevlerin üst öğeden parametreleri yakalaması yaygın ve beklenen bir uygulamadır ve bunların atlanması hataya neden olan yaygın bir kaynaktır.

    Özetlemek gerekirse aşağıdaki örneği düşünün:

    @Composable fun Counter(count: Int, onCountChange: (Int) -> Unit) {
      @Composable fun ShowCount() { Text("Count: $count") }
      ShowCount()
      Button(onClick={ onCountChange(count + 1) }) {
        Text("Increment")
      }
    }
    

    Bu değişiklikten önce, ShowCount composable işlevi, count parametresi güncellendikten sonra bile her zaman atlıyordu. Bu durum artık geçerli değil. (I5648a)

  • Giriş parametreleriyle (I1b110, b/182403380) kullanıldığında rememberSaveable() ürününün eski değeri geri yüklemesiyle ilgili sorun düzeltildi

Sürüm 1.0.0-beta03

24 Mart 2021

androidx.compose.runtime:runtime-*:1.0.0-beta03 yayınlandı. Sürüm 1.0.0-beta03 bu kaydetmeleri içerir.

API Değişiklikleri

  • DefaultMonotonicFrameClock desteği sonlandırıldı. Telefon etme Hayır olan withFrameNanos veya Recomposer.runRecomposeAndApplyChanges MonotonicFrameClock şimdi IllegalStateException atacak. (I4eb0d)

Sürüm 1.0.0-beta02

10 Mart 2021

androidx.compose.runtime:runtime-*:1.0.0-beta02 yayınlandı. Sürüm 1.0.0-beta02 bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • Deneysel API'lerin herkese açık kullanımıyla ilgili kısıtlamaları zorunlu kılın (I6aa29, b/174531520)
  • Gezinme oluşturma hedefinin içinde kullanıldığında bozuk rememberSaveable { mutableStateOf(0) } sorunu düzeltildi. (I1312b, b/180042685, b/180701630)

Sürüm 1.0.0-beta01

24 Şubat 2021

androidx.compose.runtime:runtime-*:1.0.0-beta01 yayınlandı. Sürüm 1.0.0-beta01 bu kaydetmeleri içerir.

Bu, Compose 1.0.0 Beta'nın ilk sürümüdür.

API Değişiklikleri

  • Recomposer.runRecomposeConcurrentlyAndApplyChanges adlı kullanıcıyı ekle geçersiz kılınan besteleri ana makine dışında yeniden düzenlemeye yönelik deneysel API çerçeve döngüsü. (I342d0)
  • @ReadOnlyComposable ile işaretlenen tüm composable'lar artık yalnızca diğer @ReadOnlyComposable'lara (I58961) çağrı yaptıklarından emin olmak için derleme zamanı açısından doğrulanıyor.
  • compositionLocalOf ve için defaultFactory staticCompositionLocalOf artık şunun yerine zorunludur: isteğe bağlıdır.

    Bu değişiklikler, null olmayan değer için olası bir tür hatasını kaldırır varsayılan fabrikanın sağlanmadığı türler bulunur. Daha önce bu değeri, null olmayan bir tür için boş bir referans sağlar.

    Boş değer atanabilen türler için varsayılan olarak { null } sağlayabilirsiniz fabrika ayarlarına sıfırlamanız gerekir.

    Aşağıdaki durumlarda, null olmayan türlere sahip yerellerin kullanılmasını önermiyoruz: makul bir varsayılan değer sağlanabilir. Makul bir varsayılan ayar yoksa defaultFactory lambda bir istisna yapar. Ancak bir istisna uygulamak, yerel tüketicilerin zorunlu kılınmayan örtülü bağımlılık yapabilirsiniz. (Ifbd2a)

  • Desteği sonlandırılan simgeler, oluşturma çalışma zamanından kaldırıldı (I3252c)

  • Desteği sonlandırılmış emptyContent() kaldırıldı. Bunun yerine {} politikasını kullanın. (Idb33f, b/179432510)

  • Sağlayıcılar, CompositionLocalProvider olarak yeniden adlandırıldı

    • Beste oluşturucu artık anahtar parametreleri kabul etmiyor ve kullanımdan kaldırıldı.
    • currentCompositeKeyHash, composable üst seviye bir işlev yerine derlenebilir üst düzey bir mülke dönüştürüldü.
    • CompositionData ve CompositionGroup, androidx.compose.runtime.tooling ad alanına taşındı
    • ComposableLambda, somut bir sınıf yerine bir arayüz haline getirildi ve artık tür parametrelerine sahip değil.
    • ComposableLambdaN, somut bir sınıf yerine bir arayüz haline getirildi ve artık tür parametrelerine sahip değil.
    • SnapshotFlow işlevi, androidx.compose.runtime ad alanına taşındı
    • SnapshotMutationPolicy'nin birleştirme yöntemi artık deneysel değil
    • @TestOnly üst düzey clearRoots işlevi kaldırıldı. Artık gerekli değildir.
    • keySourceInfoOf ve resetSourceInfo işlevleri kaldırıldı. Bunlar artık gerekli değildir.
    • Composer.collectKeySourceInfo bilgileri kaldırıldı. Artık gerekli değildir.
    • isJoinedKey,joinKeyLeft vejoinKeyRight yöntemleri kaldırıldı. Bunlar artık gerekli değildir.
    • Çeşitli üst düzey API'ler taşındı ve farklı dosyalara yeniden düzenlendi. Bu, Kotlin'in dosya sınıfı semantiği nedeniyle ikili program uyumluluğunu bozar ancak kaynak uyumluluğunu bozmaz. Bu nedenle çoğu kullanıcı için sorun olmayacaktır.
    • (I99b7d, b/177245490)
  • SnapshotStateObserver artık Deneysel değil (Id2e6a)

  • Desteği sonlandırılan bazı API'ler silindi (Ice5da, b/178633932)

  • Aşağıdaki Material API değişiklikleri yapıldı:

    • Varsayılan dolgunun özelleştirilmesine olanak tanımak için Top/BottomAppBar'a contentPadding parametresi eklendi.
    • BackdropScaffold'deki parametreler, gerekli parametrelerin isteğe bağlı parametrelerden önce gelmesi için API yönergelerine uygun olacak şekilde yeniden sıralandı.
    • BottomGezinmeItem kutusundaki icon parametresi, selected ve onClick tarihinden sonra olacak şekilde taşındı.
    • BottomClicksItem öğesi içindeki alwaysShowLabels parametresi alwaysShowLabel olarak yeniden adlandırıldı.
    • Birkaç bileşendeki bodyContent parametre yalnızca content olarak yeniden adlandırıldı.
    • ButtonDefaults.buttonColors() içindeki parametreler yeniden sıralandı. Parametrelerin türü değişmediği için bunun kodunuzda hataya neden olmayacağını lütfen unutmayın. Lütfen adlandırılmış parametreler kullandığınızdan veya sıralamayı manuel olarak güncellediğinizden emin olun. Aksi takdirde, kodunuz öncekiyle aynı şekilde çalışmaz.
    • darkColors() öğesine secondaryVariant parametresi eklendi. Bu renk, genellikle koyu temadaki secondary ile aynıdır ancak tutarlılık ve daha fazla özelleştirme için eklenir.
    • Yaygın olarak kullanılmadığı / faydalı olmadığı için ElevationDefaults veAnimationElevation() öğelerini herkese açık API yüzeyinden kaldırdık.
    • Slider öğesindeki onValueChangeEnd, onValueChangeFinished olarak yeniden adlandırıldı ve boş değer olarak değiştirildi.
    • Tutarlılık sağlamak için Snackbar öğesindeki text parametresi content olarak yeniden adlandırıldı.
    • Varsayılan dolgunun özelleştirilmesine olanak tanımak için DropdownMenuItem öğesine contentPadding parametresi eklendi ve content, RowScope öğesinde uzantı yapıldı.
    • ModalDrawerLayout adlı dosya ModalDrawer olarak yeniden adlandırıldı.
    • BottomDrawerLayout adlı dosya BottomDrawer olarak yeniden adlandırıldı.
    • (I1cc66)

Sürüm 1.0.0-alpha12

10 Şubat 2021

androidx.compose.runtime:runtime-*:1.0.0-alpha12 yayınlandı. 1.0.0-alpha12 sürümü bu kaydetmeleri içerir.

API Değişiklikleri

  • UiApplier'dan ViewGroups desteği kaldırıldı. Desteği sonlandırılmış emitView composable'ları kaldırıldı. (Ifb214)
  • CompositionReference, CompositionContext (I53fcb) olarak yeniden adlandırıldı
  • ComponentActivity.setContent, şuraya taşındı: androidx.activity.compose.setContent androidx.activity:activity-compose modülü. (Icf416)
  • Snapshot API daha tutarlı olacak şekilde güncellendi. API kılavuzu ve dahili uygulama sınıflarını gizleme herkese açık API'den yararlanın. (Id9e32)
  • Ambiyanslar, Ambiyans ile eşleşecek şekilde yeniden adlandırıldı -> CompositionLocal yeniden adlandırıldı. Ambiyanslar eskiden AmbientFoo olarak adlandırılıyorken CompositionLocals artık LocalFoo olarak adlandırılıyor. (I2d55d)
  • Ambient, sırasıyla CompositionLocal ve ambientOf / staticAmbientOf olarak besteLocalOf / staticCompositionLocalOf olarak yeniden adlandırıldı. Bu değişiklik, CompositionLocal'ın amacının daha net bir şekilde anlaşılmasına yardımcı olur: Bileşenlerin yerel değerlerini sağlayan / almaya yarayan bir mekanizma. CompositionLocal örneklerinin başında Local öneki bulunmalıdır (ör. val LocalFoo = connectorLocalOf { Foo() }). (Ia55b6)
  • TakeMutableSnapshot ve takeSnapshot Genel Görünüm'ün tamamlayıcı yöntemlerine taşındı. (I91f19)
  • @ComposableContract desteği sonlandırılarak üç ek ek açıklama daha kullanıma sunuldu.

    @ComposableContract(restartable = false), @NonRestartableComposable oldu @ComposableContract(readonly = true), @ReadOnlyComposable oldu @ComposableContract(preventCapture = true), @DisallowComposableCalls oldu @ComposableContract(tracked = true) kaldırıldı. (I60a9d)

  • emptyContent() ve (@Composable () -> Unit).orBlank() yardımcı programları, performans üzerinde artık herhangi bir olumlu etkisi veya değeri olmadığı için kullanımdan kaldırılmıştır (I0484d)

  • snapshotFlow ve withMutableSnapshot artık değil deneysel (I6a45f)

  • Recomposer'lar artık kapatılabilir. Kapatılan derleyiciler: beste alt eş yordamları tamamlanana kadar yeniden düzenleme işlemine devam edin. Recomposer.shutDown, kapatmayla kontrast olarak iptal edilecek şekilde yeniden adlandırıldı. (Ib6d76)

  • compose:runtime-dispatch yapısının desteği sonlandırıldı. MonotonicFrameClock, artık generate:runtime ve AndroidUiDispatcher komutu düzenleyicinin içinde bulunabilir:ui. (Ib5c36)

  • Compose derleyici eklentisinin hedeflediği API yerine bir arayüz kullanmak üzere yeniden düzenlendi: beton sınıfı. Ayrıca arayüz artık bir tür parametresidir.

    Bu, kaynağı etkilememesi gereken dahili bir değişikliktir kod uyumluluğu sağlar ancak ikili programları bozan bir değişikliktir. (I3b922, b/169406779)

  • SnapshotMutableState kullanıma sunuldu (Icfd03)

  • DisposableEffectDisposable, DisposaleEffectResult (Ica7c6) olarak yeniden adlandırıldı.

  • Recomposer.current() kaldırıldı. [Abstract]Şimdi görüntüle tarafından sağlanan gecikmeli şekilde oluşturulan, pencere kapsamlı Yeniden derleyicilere Pencerede ViewTreeLifecycleOwner'ı seçin. Yeniden düzenleme ve withFrameNanos tabanlı animasyon çizgileri, ana makine Yaşam Döngüsü sırasında duraklatılır durdurulur. (I38e11)

  • Recomposer.RunRecomposers, artık global bir StateFlow sunuyor devam eden beste durumunu gözlemlemek için salt okunur RecomposerInfo daha fazla bilgi edineceksiniz. Şu anda ayarlı olan Recomposer.current() için bu API'yi tercih edin. desteği sonlandırıldı. (If8ebe)

  • DisposableEffectDisposable, DisposaleEffectResult (I3ea68) olarak yeniden adlandırıldı

Sürüm 1.0.0-alpha11

28 Ocak 2021

androidx.compose.runtime:runtime-*:1.0.0-alpha11 yayınlandı. Sürüm 1.0.0-alpha11 bu kaydetmeleri içerir.

API Değişiklikleri

  • SideEffect ve DisposableEffect API'leri (If760e) yerini alarak onCommit, onDispose ve onActive desteği sonlandırılmıştır.
  • emit() API'si ve tüm aşırı yüklemeler kullanımdan kaldırıldı ve ComposeNode olarak yeniden adlandırıldı. API'ler tamamen aynıdır, yalnızca Compose'un (I4137b) adlandırma kurallarına uygun olarak farklı bir ada sahiptir
  • in Verify ve bestReference() yöntemi desteği sonlandırılarak, sırasıyla currentRecomposeScope ve chooseCompositionReference yerine kullanılmaya başlandı. (I583a8)
  • ReadObserver, CompositionLifecycleObserver'ın yerini aldı ve CompositionLifecycleObserver desteği sonlandırıldı.

    RememberObserver, şunun yerine geçer: Değiştirilmiş anlamlara sahip CompositionLifecycleObserver yeniden adlandırıldı. Yeni API'ye geçiş mekanik olarak yapılabilir hatırlanan ve unutulan bu nesneler için olması önerilir. Ancak bir referans bir bestede birden çok kez hatırlanan onRemembered değerine onEnter değerinin yalnızca bir kez çağrıldığı her referans için. onEnter. nesne alt bileşimlerde kullanılmışsa birden çok kez çağrılır, Örneğin, WithConstraints ve Scaffold single'ı yapıyor onEnter arama garantisi güvenilir değil ve şu nedenle kaldırıldı: RememberObserver.

    RememberObserver,onAbandoned Geçilen geri çağırmadan RememberObserver örnek döndürüldü remember olarak kaydedildi ancak beste durumunda hatırlanmadı ve dolayısıyla onRemembered hiçbir zaman çağrılmaz. Bu bir istisna besteyi tamamlanmadan veya tamamlamadan feshederse eyalet üretim aşamasındaki için bestenin güncel olmaması veya artık güncel olmaması gerekir. Single'ın ardından RememberObserver örneği yukarıdaki referans öneri, harici bir kaynağın izlenmesidir hem onForgotten hem de onAbandoned, gerekli değildir. Nesne işi izliyorsa onRemembered, onAbandoned içinde başlatılan kaynaklar onRemembered ise çağrılmayacağından yoksayılabilir çağrıldı. (I02c36)

  • collectAsState() işlevlerini satır içi olarak işaretleme (Ia73e4)

Hata Düzeltmeleri

  • WithConstraints BoxWithConstraints olarak yeniden düzenlendi ve Foundation.layout öğesine taşındı. (I9420b, b/173387208)
  • Testlerde TestCoroutineDispatcher'dan yararlanın (I532b6)

Sürüm 1.0.0-alpha10

13 Ocak 2021

androidx.compose.runtime:runtime-*:1.0.0-alpha10 yayınlandı. 1.0.0-alpha10 sürümü bu kaydetmeleri içerir.

Çarpıcı Değişim

  • Dahili derleyicinin yeniden yapılandırılması API, oluşturulan düğümlerde değişikliklerin toplu olarak yapılmasını sağlar "değişiklikleri uygulama" sürecinin bir sonucu olarak tüm @Composable işlevlerinden sonra bestenin aşaması tamamlandı.

    Bu durum bir davranış bozucudur uygulama kodunu etkileyebilecek artık dahili kaynaklardan alınamayacak değişiklik yapılana kadar deneme amaçlı API'ler geçerlidir. Bu sorunun çözümü genellikle ve bir programlama dilinde SideEffect, yürütülmesini ertelemek için composable'a kalan kod, düğümler oluşturulana kadar başlatıldı. (I018da)

API Değişiklikleri

  • Anahtar kelimelerin depolayıcı, değişiklikleri uyguladı. (I1b3e2)
  • Geri dönüşüme olanak tanımak için [Abstract]ComposeView API'lerini genişletin Bestelerini yeniden oluşturmak üzere elden çıkararak kompozisyona dayalı görünümler daha sonra. Pencere kapsamlı Recomposer'ları yüklemek ve keşfetmek için API'ler ekleyin besteler oluşturmak için CompositionReferences

    Besteleme işlemini yapılandırmak için ViewCompositionPolicy'yi ekleyin [Abstract]ComposeViews stratejisi; varsayılan davranış şudur: pencere ayrılabilir. (I860ab)

Hata Düzeltmeleri

  • Yeniden oluşturucu artık bir Akışın mevcut durumunu gösterir. Böylece, etkinliği ve ilişkili etkilerinin aktivitesini izleme. (Ifb2b9)
  • Yerel keyEvent'e artık keyEvent.nativeKeyEvent (I87c57, b/173086397) üzerinden erişilebilir.

Sürüm 1.0.0-alpha09

16 Aralık 2020

androidx.compose.runtime:runtime-*:1.0.0-alpha09 yayınlandı. Sürüm 1.0.0-alpha09 bu kaydetmeleri içerir.

API Değişiklikleri

  • SlotTable, SlotReader ve kaldırıldı Genel API'den SlotWriter. Bunlar şu şekilde işaretlendi: InternalComposeAPI'yi kullanmıştım. Artık bunlar şirket içi modülüne geçelim.

    CompositionData ve CompositionGroup ayıklamak için kullanılacak ui-tooling API'sinin yerine beste bilgisidir. Bunlar herkese açıktır ancak herkese açık değildir. sağladığı için ui-tooling API'sinin dışında kullanılmak üzere tasarlanmıştır. ui-tooling API'nin yorumladığı ham bilgiler (I31a9c)

  • Uygulayıcı sınıfı artık (Id85b0) olarak kabul edilmemektedir

  • Applier arayüzü basitleştirilecek şekilde değiştirildi yukarıdan aşağıya değil, aşağıdan yukarıya doğru inşa edebilirsiniz.

    insert() yöntemi insertTopDown() olarak yeniden adlandırıldı.

    Yeni bir yöntem (insertBottomUp()) eklendi.

    Bir uygulayıcı, düzenlediği ağaca düğüm ekler bağlı olarak insertTopDown() veya insertBottomUp() kullanılıyor ve daha iyi performans gösterdiğini göreceksiniz.

    LayoutNode ve View gibi bazı ağaçlar çok daha fazladır yukarıdan aşağıya doğru oluşturmak yerine aşağıdan yukarıya doğru oluşturmak daha etkilidir. Bu değişiklikten önce aşağıdan yukarıya uygulamak için bir dizi ekleme gerekiyordu. her uygulayıcıya kopyalanması gerekti. her şeyi öğreteceğim. Bu değişiklikle birlikte bir Applier aşağıdan yukarıya ağaç oluşturmak için insertBottomUp() değerini geçersiz kılar ve Ağacı yukarıdan aşağıya inşa etmek için insertTopDown(). (Icbdc2)

  • Compose, composable çağrılar yapabilen özellik alıcılarını destekler. Bunun için sunulan destek kaldırılmayacak ancak bir özellik alıcısını @Composable olarak tanımlamak için kullanılan söz dizimi değişiyor.

    Bunu yapmak için artık kullanımdan kaldırılan söz dizimi, mülkün kendisine ek açıklama eklemekti:

        @Composable val someProperty: Int get() = ...
    

    Bunu yapmak için şu anda doğru olan söz dizimi, mülkü alan kişiye açıklama eklemektir:

       val someProperty: Int @Composable get() = ...
    

    Her iki söz dizimi de bir süre boyunca çalışacaktır ancak kullanımdan kaldırılan eski söz dizimi, sonunda derleme hatasına dönüşecektir. (Id9197)

Hata Düzeltmeleri

Sürüm 1.0.0-alpha08

2 Aralık 2020

androidx.compose.runtime:runtime-*:1.0.0-alpha08 yayınlandı. 1.0.0-alpha08 sürümü bu kaydetmeleri içerir.

API Değişiklikleri

  • Oluşturma yönergeleriyle tutarlılığı kontrol etmek üzere composable lambda parametresi adı ve konumu için lint denetimi eklendi. Ayrıca, lint kontrolü ve rehberlik doğrultusunda, sondaki lambdaların adı olarak children kullanılan bazı API'ler de content ortamına taşındı. (Iec48e)
  • Recomposer artık EmbeddingContext kabul etmiyor; zorunlu çizelgeleme bağımlılıkları EffectsCoroutineContext'ten alınır. FrameManager kullanımdan kaldırıldı; ilk kullanıma hazırlaması gereken anlık görüntü işleme sistemi geliştirilebilir. (I02369)
  • RestorableStateHolder.withRestorableState işlevi RestorableStateProvider (I66640) olarak yeniden adlandırıldı.

Hata Düzeltmeleri

  • Sonek olarak Ambient adını taşıyan ve desteği sonlandırılmış Ambiyanslar, diğer Ambients and Compose API kurallarına uyarak Ambient ön ekini taşıyan yeni özellikler eklendi. (I33440)
  • Eski kullanıcı arayüzü testi modülünü ve uçlarını kaldırın (I3a7cb)

Sürüm 1.0.0-alpha07

11 Kasım 2020

androidx.compose.runtime:runtime-*:1.0.0-alpha07 yayınlandı. 1.0.0-alpha07 sürümü bu kaydetmeleri içerir.

Yeni Özellikler

API Değişiklikleri

  • @UnionType ek açıklaması kullanımdan kaldırıldı (I57cde)
  • Ambiyans sağlamak için alternatif olarak OfferDefault eklenmiştir ve yalnızca ambiyans değeri sağlanmadığında ayarlanacak ortam değerlerini belirtmek için kullanılabilir. (Id6635, b/171024925)
  • LaunchedTask, tutarlılık için LaunchedEffect olarak yeniden adlandırıldı SideEffect ve DisposableEffect API'lerini kullanabilirsiniz. LaunchedEffect dosyası kapalı en iyi uygulamaları teşvik etmek için konu parametrelerine izin verilmez. (Ifd3d4)
  • Applier artık Ağaçta değişiklik uygulaması başladığında/tamamlandığında bir Composer çağrılır. Bunlar, gerekirse kaynak yönetimini toplu işlem için kullanılabilir. (Icf476)
  • Recomposer artık yapım sırasında bir CoroutineContext gerektiriyor (Ic4610)
  • Dahili SlotTable uygulamasında gerçekleştirilen herkese açık API'yi etkilememelidir. (If9828)
  • İlk değeri almayan, desteği sonlandırılmış rxjava2 bağdaştırıcıları kaldırıldı (Idb72f)

Hata Düzeltmeleri

  • Foundation.Text desteği sonlandırılmış ve asset.Text ile değiştirildi. Temadan değer kullanmayan temel ve işlemsiz metin API'leri için androidx.compose.foundation.BasicText adresini ziyaret edin. (If64cb)
  • BaseTextField desteği sonlandırıldı. Bunun yerine BasicTextField alanını kullanın. (I896eb)
  • Düzenle ilgili çeşitli semboller androidx.compose.ui'den androidx.compose.layout.ui'ye taşındı. (I0fa98, b/170475424)

Harici Katkı

  • Oluşturma için runtime-rxjava3 modülü eklendi. runtime-rxjava2 ile benzer (I02cbf)

Sürüm 1.0.0-alpha06

28 Ekim 2020

androidx.compose.runtime:runtime-*:1.0.0-alpha06 yayınlandı. 1.0.0-alpha06 sürümü bu kaydetmeleri içerir.

API Değişiklikleri

  • Recomposer artık bir CompositionReference ve geçerli bir bileşim üst öğesidir. Açık Yeniden Oluşturucu artık daha az yerde gerekiyor. (I4036f)
  • SideEffect'e DisposableEffect eşdeğer API'si eklendi, onCommit-with-params rolünü oynadık, ancak onDispose'u zorunlu tuttu.
    • Yeniden düzenlemeden devam eden veya uzun ömürlü süreçlere (disposableEffects) veya LaunchedTasks.
    • (Id50b9)
  • MutableVector artık RandomAccess'i uyguluyor (I85d73, b/170461551)
  • bileşim tarafından yönetilen nesnelere dönüştürülür. YanEfekt (yeni): onCommit composable'ın yerini alması amaçlanmıştır. (Ia77c2)
  • Yeni deneysel API RestorableStateHolder. Alt ağacı, geri yüklenen durumla bir dahaki sefere oluşturabilmeniz için ortadan kaldırmadan önce [savedInstanceState] ve [rememberSavedInstanceState] ile tanımlanan durumun kaydedilmesine olanak tanır. (I66884, b/166586419)

Hata Düzeltmeleri

  • ComposeTestRule'da geçişleri etkinleştir; seçeneği kaldır ComposeTestRule'da yanıp sönen imleci etkinleştirin. (If0de3)

Sürüm 1.0.0-alpha05

14 Ekim 2020

androidx.compose.runtime:runtime-*:1.0.0-alpha05 yayınlandı. 1.0.0-alpha05 sürümü bu kaydetmeleri içerir.

API Değişiklikleri

  • Deneysel Modifier.pointerInput, giriş değiştiriciyi askıya alıyor (Ia77d2)
  • LazyColumn/Row'un kaydırma performansı, her kaydırmada alt bileşim üzerinde daha az iş yapılarak iyileştirildi. Beste sınıfı için yeni hasGeçersizations() yöntemi eklendi. Recomposer'daki hasPendingChanges() yöntemi has Invalidations() olarak yeniden adlandırıldı (Ib2f32, b/168293643, b/167972292, b/165028371)
  • Besteden eş yordamlar başlatmak için generateState API'yi ekleyin zaman içinde tek bir State<T> değerini güncelleyen (Id4a57)
  • LaunchInComposition, Compose ile eşleşecek şekilde LaunchedTask olarak yeniden adlandırıldı API yönergeleri (I99a8e)
  • Özel Layout'lardaki Place() çağrılarının sırası artık alt öğeler için çizim sırasını (Ibc9f6) tanımlar.

Sürüm 1.0.0-alpha04

1 Ekim 2020

androidx.compose.runtime:runtime-*:1.0.0-alpha04 yayınlandı. 1.0.0-alpha04 sürümü bu kaydetmeleri içerir.

API Değişiklikleri

  • Şunların toplanmasına izin vermek için OwnerScope eklendi: çerçeve veya çizimle ilgili görevlerin artık geçerli değil. (Ic4cf8)
  • Diğer durum nesnelerini okuyabilen (ve türetebilen) bir hesaplamaya dayalı durum nesneleri oluşturmak için türetilmişStateOf API eklendi (If758b)
  • SnapshotStateObserver için TestOnly API'si eklendi (I6e2a9)

Hata Düzeltmeleri

  • Foundation.Box desteği sonlandırıldı. Lütfen bunun yerine Foundation.layout.Box'ı kullanın. (Ie5950, b/167680279)

Sürüm 1.0.0-alpha03

16 Eylül 2020

androidx.compose.runtime:runtime-*:1.0.0-alpha03 yayınlandı. 1.0.0-alpha03 sürümü bu kaydetmeleri içerir.

API Değişiklikleri

  • CompositionCoroutineScope artık uygulamıyor MonotonicFrameClock. withFrameNanos uygulamasını arayanlar üst düzeyi içe aktarmalıdır işlevini kullanmanız gerekir. (Icb642, b/166778123)

Hata Düzeltmeleri

  • onNode veya waitForIdle gibi genel test işlevleri artık desteği sonlandırıldı, lütfen aşağıda tanımlanan yeni benzerlerine geçin ComposeTestRule (I7f45a)
  • launchInComposition artık gönderilmemiş eş yordamları başlatmıyor (Ief6af, b/166486000)

Sürüm 1.0.0-alpha02

2 Eylül 2020

androidx.compose.runtime:runtime-*:1.0.0-alpha02 yayınlandı. 1.0.0-alpha02 sürümü bu kaydetmeleri içerir.

API Değişiklikleri

  • Tüketim için snapshotFlow ve withMutableSnapshot API'leri ekleyin ve Anlık görüntü verileri değişiklikleri oluşturmaktır. (I3e722)
  • Birleştirilebilir fonksiyonlar için çağrı kuralında değiştirildi. Bu, ikili zarar veren bir değişikliktir. Tüm kitaplıklar olmalıdır derleyici eklentisinin bu sürümüyle çalışmak üzere yeniden derlenmiştir.

    Bu değişiklik, sadece değişen API'ler, etkinleştirin. (I7afd2, b/158123185)

  • EmbeddingContext'ten (I7b9be) planlama yöntemleri kaldırıldı

  • onPreCommit kullanımdan kaldırıldı; onCommit'te artık onPreCommit gösterir.

    onCommit ve onActive artık sizinle aynı koreograf karesinde çalışıyor. başta değil, yalnızca belirli bir zamanda yapılan değişiklikler kareografinin ana hatlarını oluşturabilirsiniz. (I70403)

Sürüm 1.0.0-alpha01

26 Ağustos 2020

androidx.compose.runtime:runtime-*:1.0.0-alpha01 yayınlandı. 1.0.0-alpha01 sürümü bu kaydetmeleri içerir.

Sürüm 0.1.0-dev

Sürüm 0.1.0-dev17

19 Ağustos 2020

androidx.compose.runtime:runtime-*:0.1.0-dev17 yayınlandı. Sürüm 0.1.0-dev17 bu kaydetmeleri içerir.

API Değişiklikleri

  • Özel emisyonlara artık bir veya daha fazla atlanıp yeniden düzenlenebilir. (Ibbd13)
  • Desteği sonlandırılan FrameManager çağrıları kaldırıldı.

    Dahili yazma API'leri, arama sonuçlarında görünen mutableStateof() (I80ba6) gibi durum nesnelerini izlemek için ek yük

  • state { ... } composable artık kullanımdan kaldırıldı ve daha net bir şekilde remember { mutableStateOf(...) } için yapılan uygunsuz çağrılar. Bu, genel API yüzeyini ve durum ile ilgili kavramların sayısını azaltır yönetimi ve sınıf için by mutableStateOf() kalıbıyla eşleşir izin verebilirsiniz. (Ia5727)

  • Flow.collectAsState artık varsayılan olarak Dispatchers.Main değerine ayarlanmaz. (I9c1d9)

  • For döngüsü içinde kullanılan durumu kaydeden bir şey düzeltildiğinde kilitlenme. Artık savedInstanceState() işlevinde aynı anahtara izin verilir. UiSavedStateRegistry API'si artık bu yeni gereksinime (I4ab76, b/160042650, b/156853976, b/159026663, b/154920561) göre ayarlanmıştır

Hata Düzeltmeleri

  • emitView desteği sonlandırıldı. Compose içinde Görünümler yayınlamak için mümkünse AndroidView kullanın. Bu işlemlerin AndroidView kullanılarak yapılabildiği durumlarda, beste ağacında bırakılmadığı sürece Görünümler ve ViewGroups oluşturma işlemlerinin doğrudan desteklenmeyeceğini unutmayın. (I29b1e, b/163871221)

Sürüm 0.1.0-dev16

5 Ağustos 2020

androidx.compose.runtime:runtime-*:0.1.0-dev16 yayınlandı. Sürüm 0.1.0-dev16 bu kaydetmeleri içerir.

API Değişiklikleri

  • Varsayılan mutasyon politikası olan mutableStateOf() ambientOf() ve savedInstanceStateOf() şu şekilde değiştirildi: referentialEqualityPolicy() yerine structuralEqualityPolicy().

    Yeni bir değerin mutableStateOf() örneğinin varsayılan değeri === yerine == kullanılıyor.

    https://kotlinlang.org/docs/reference/equality.html adresini ziyaret edin

    ambientOf() ve savedInstanceStateOf(), mutableStateOf() kullanıyor sağlayacak şekilde değiştirildi. Bu sayede mutableStateOf().

    Yapısal eşitliğin kullanılması geliştiriciyle daha yakından eşleşir emin olmanız gerekir.

    Örneğin,

    val state = mutableStateOf(1f)
    

    ardından,

    state.value = 1f
    

    bundan böyle state için yapılan bir değişiklik olarak değerlendirilmeyecek ve Beste sırasında state öğesinin artık yeniden düzenlenmesi gerekmeyecek.

    Bu zarar veren bir değişiklik olsa da çoğu durumda (örneğin, equals() geçersiz kılınmayan sınıflar) içeriyorsa, fark edilebilir bir etkiye sahip olabilir.

    equals() politikasını geçersiz kılan sınıflar (ör. data sınıf), equals() yöntemlerinden dolayı performansta düşüş artık bir mutableStateOf() öğesine atandığında varsayılan olarak çağrılıyor.

    Önceki davranış, politika eklenerek geri yüklenebilir policy = referentialEqualityPolicy() parametresinden mutableStateOf(), ambientOf() ve savedInstanceStateOf(). (Ic21a7)

  • Row ve Column artık önemli ölçüde satır içi işlevi görüyor ve kullanımın ek yükünü azaltır. (I75c10)

Hata Düzeltmeleri

  • setViewContent'in desteği sonlandırıldı. bunun yerine setContent kullanılmalıdır. (I7e497, b/160335130)
  • MonotonicFrameAnimationClock eklentisine sahip olan MonotonicFrameAnimationClock Boşluğu doldurmak için bir AnimationClockObservable olarak MonotonicFrameClock yeni eş yordamlara dayalı saatler ile hâlâ eskiyi kullanan API'ler arasında saatlere dayanıyor.

    ManualAnimationClock'ın MonotonicFrameClock eşdeğeri artık ManualFrameClock'ı seçin. (I111c7, b/161247083)

  • Değiştirici.stateDraggable tamamen yeniden işlendi ve yeniden adlandırıldı Değiştirici.sDELETEable olarak değiştirin. Yeni bir ScrollableState sınıfı kullanıma sunuldu ve DrawerState ve BottomDrawerState öğeleri buradan devralınacak şekilde yeniden düzenlendi. [Modal/Bottom]DrawerLayout artık onStateChange parametresi almamaktadır. (I72332, b/148023068)

  • Değiştirici.plus desteği sonlandırıldı. Bunun yerine Değiştirici.then'i kullanın. "O zaman" daha güçlü bir sipariş sinyaline sahiptir ancak Modifier.padding().background() + anotherModifier yazılmasını yasaklayarak zinciri bozar ve okunması daha zor olur (Iedd58, b/161529964)

  • SubcomposeLayout eklendi. Bu, ancak daha sonra alt ağaç bileşimi ölçümü sırasında kullanılabilir olan bazı değerleri kullanmak istersek, ölçüm sırasında alt öğelerin oluşturulmasına olanak tanıyan alt düzey bir temel öğedir. Örneğin, WithConstraints SubcomposeLayout kullanılarak uygulanmaz. (I25cc8)

  • Material FilledTextField, TextField olarak yeniden adlandırıldı ve temel TextField, istenen en basit API'nin kolayca keşfedilmesi ve kullanılması için BaseTextField olarak yeniden adlandırıldı (Ia6242, b/155482676)

  • Değiştirici.drawbackground, Değiştirici.background (I13677) olarak yeniden adlandırıldı

Sürüm 0.1.0-dev15

22 Temmuz 2020

androidx.compose.runtime:runtime-*:0.1.0-dev15 yayınlandı. Sürüm 0.1.0-dev15 bu kaydetmeleri içerir.

Bağımlılık Güncellemesi

  • Compose'un 0.1.0-dev15 sürümünü kullanmak için bağımlılıklarınızı güncellemeniz gerekir. yukarıdaki Bağımlılıkları bildirme bölümünde gösterilen yeni kod snippet'lerine göre.

API Değişiklikleri

Hata Düzeltmeleri

  • runOnIdleCompose, runOnIdle (I83607) olarak yeniden adlandırıldı
  • Made LayoutNode deneysel API'sı (I4f2e9)
  • androidx.ui.foundation.TextFieldValue ve androidx.ui.input.EditorValue desteği sonlandırıldı. Metin Alanı bu tür için de destek sonlandırılmıştır. Lütfen şunu kullanın: Bunun yerine androidx.ui.input.TextFieldValue (I4066d, b/155211005)
  • Desteği sonlandırılan DrawBackground kaldırıldı Drawbackground uzantısının tercih edildiği API Değiştirici'deki API'ler. Yeniden düzenlendi renk, fırça ve boyama Arka planı kod yollarını da azaltmaya yönelik uygulamaları Değiştirici'nin oluşturulması için kaldırma şartı olarak bir parçası olarak bulunuyor. (I0343a)
  • Daha üst düzey güncellendi oluşturma API'lerini kullanarak bir Tuval'in CanvasScope'u açın. Bu işlem, koruma ve yönetim ihtiyaçlarının Paint nesnelerini ekleyebilirsiniz. Şu özelliklere sahip tüketiciler için: bir Canvas'a erişim gerektirmesi çizim Tuvali uzantısını kullanabilir Bu yöntem, soruna geri çağırma temel çizgisini gösteren çizim komutlarını Kanvas. (I80afd)
  • WithConstraints takip eden lambda API değiştirildi. Artık iki parametre yerine, sınırlamalara ve layoutDirection'a ek olarak, Dp'de (I91b9a, b/149979702) minWidth, maxWidth, minHeight ve maxHeight özelliklerini sağlayan
  • Simetrik dolgu değiştirici eklendi. (I39840)
  • WrapContentWidth ve WrapContentHeight, herhangi bir Hizalama yerine dikey veya yatay Hizalama beklenecek şekilde güncellendi. Yer çekimi değiştiricisi, dikey veya yatay Hizalamayı kabul edecek şekilde güncellendi. Satır, Sütun ve Yığın, özel sürekli Hizalamaları destekleyecek şekilde güncellendi. (Ib0728)
  • ui-text modülü, ui-text-core (I57dec) olarak yeniden adlandırıldı
  • DrawModifier API'sini iyileştirin:
    • Paint() ContentDrawScope için alıcı kapsamı oluşturuldu
    • Çizimler() işlevindeki tüm parametreler kaldırıldı
    • DrawScope, eski CanvasScope ile aynı arayüze sahiptir
    • ContentDrawScopedrawContent() yöntemini içerir (Ibaced, b/152919067)
  • ColoredRect desteği sonlandırıldı. Bunun yerine Box(Modifier.preferredSize(width, height).drawBackground(color)) politikasını kullanın. (I499fa, b/152753731)
  • Değiştirici artı operatörü, fabrika genişletme işlevleriyle değiştirildi (I225e4)
  • RowScope ve ColumnScope üyelerine artık Satır ve Sütun dışından erişilebilir. (I3a641)
  • LayoutEsnek, LayoutAğırlık olarak yeniden adlandırıldı. Sıkı parametre, doldurulacak şekilde yeniden adlandırıldı. (If4738)
  • WithConstraints LayoutDirection parametresini (I6d6f7) aldı
  • Arka plan, DrawBackground olarak yeniden adlandırıldı ve arka planın varsayılan olarak hafızaya alınması olacak şekilde ayarlandı (Ia0bd3)
  • ButtonStyle, farklı işlevlerle değiştirildi ve metin (dize) aşırı yüklemesi kaldırıldı. Kullanım bilgileri için güncellenmiş örneklere göz atın. (If63ab, b/146478620, b/146482131)
  • runOnIdleCompose ve runOnUiThread artık genel işlevler oldu ComposeTestRule'daki yöntemlerdir. (Icbe8f)

Harici Katkı

  • Compose Çalışma Zamanı bağlantı noktası katmanından Döngü ve İşleyici gibi gereksiz API'leri kaldırın (I6847d)
  • Başlangıç değeri olmadan Flow<T>.collectAsState() öğesini kullanımdan kaldırın. Bunun yerine StateFlow<T> kullanın veya kesin bir başlangıç değeri iletin. (I63f98, b/157674865)