WindowManager
| Son Güncelleme | Kararlı Sürüm | Sürüm Adayı | Beta sürümü | Alfa Sürümü |
|---|---|---|---|---|
| 17 Haziran 2026 | 1.5.1 | - | - | 1.6.0-alpha05 |
Bağımlılıkları bildirme
WindowManager'a bağımlılık eklemek için Google Maven deposunu projenize eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposunu okuyun.
Uygulamanız veya modülünüz için build.gradle dosyasına ihtiyacınız olan yapılarla ilgili bağımlılıkları ekleyin:
Groovy
dependencies { implementation "androidx.window:window:1.5.1" // For Java-friendly APIs to register and unregister callbacks implementation "androidx.window:window-java:1.5.1" // For RxJava2 integration implementation "androidx.window:window-rxjava2:1.5.1" // For RxJava3 integration implementation "androidx.window:window-rxjava3:1.5.1" // For testing implementation "androidx.window:window-testing:1.5.1" }
Kotlin
dependencies { implementation("androidx.window:window:1.5.1") // For Java-friendly APIs to register and unregister callbacks implementation("androidx.window:window-java:1.5.1") // For RxJava2 integration implementation("androidx.window:window-rxjava2:1.5.1") // For RxJava3 integration implementation("androidx.window:window-rxjava3:1.5.1") // For testing implementation("androidx.window:window-testing:1.5.1") }
Geri bildirim
Geri bildiriminiz Jetpack'in iyileştirilmesine yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı iyileştirmeye yönelik fikirleriniz varsa lütfen bize bildirin. Yeni bir sorun oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oyunuzu ekleyebilirsiniz.
Daha fazla bilgi için Sorun İzleyici belgelerini inceleyin.
Sürüm 1.6
Sürüm 1.6.0-alpha05
17 Haziran 2026
androidx.window:window-*:1.6.0-alpha05 iptal edilir. 1.6.0-alpha05 sürümü bu commit'leri içerir.
API Değişiklikleri
WindowEngagementInfo'ye yeniEngagementMode.PRECISE_POINTERAPI'si ekleyin (I7e4d7, b/474545085)WindowLayoutInfo.engagementModesdesteği sonlandırıldı. Etkileşim modu değişikliklerini gözlemlemek için yeniWindowInfoTracker.windowEngagementInfo()yöntemini kullanın. (I500d1, b/491562425)
Sürüm 1.6.0-alpha03
22 Nisan 2026
androidx.window:window-*:1.6.0-alpha03 iptal edilir. 1.6.0-alpha03 sürümü bu commit'leri içerir.
API Değişiklikleri
- Etkileşim durumu kontrolü için API'ler ekleyin. (I98a09, b/489793703)
- Özelliği tetiklerken davranışın daha net anlaşılması için
transferActivityToWindowArea,transferToWindowAreaolarak yeniden adlandırıldı. Bu işlem, oturum tabanlı davranışı da kaldırır. Bunun nedeni, bu işlemin, kendisini isteyen süreçten daha uzun sürmesidir. (Ie7d6f, b/271644150, b/273807246, b/272064992, b/473870239) WindowMetricsalmak için güvenli yöntem ekleyin (I2adf8, b/449386176)- Daha anlaşılır olması için etkileşim moduna yönelik WM uzantılarındaki güncelleme yöntemleri. (I219a4, b/454438323)
WindowSizeClassSetsöğesini ızgara biçiminde oluşturmak için yardımcı yöntemler ekleyin. (I4d623, b/444174274)- Etkileşim modunu almak için API ekleyin. (I9fef2, b/423990404)
- Geri çağırmaya dayalı işleyicileri doğrudan
WindowLayoutInfoöğesine ekleyin veWindowInfoTrackerCallbackAdapteröğesinin desteğini sonlandırın. (I1ff17, b/423990404) - Uzantılarda
WindowLayoutInfooluşturucusunun desteği sonlandırıldı. (I6ab65, b/423990404) - Etkileşim modunun raporlanması için uzantı desteği eklendi. (I66211, b/423990404)
Hata Düzeltmeleri
- Compose
compileSdk, API 37'ye güncellendi. Bu nedenle, Compose kullanılırken minimum AGP sürümü 9.2.0 olmalıdır. (Id45cd, b/413674743)
Sürüm 1.6.0-alpha01
19 Kasım 2025
androidx.window:window-*:1.6.0-alpha01 iptal edilir. 1.6.0-alpha01 sürümü bu commit'leri içerir.
Yeni Özellikler
WindowSizeClassSetsöğesini ızgara biçiminde oluşturmak için yardımcı yöntemler ekleyin.
API Değişiklikleri
WindowSizeClassSetsöğesini ızgara biçiminde oluşturmak için yardımcı yöntemler ekleyin. (I4d623, b/444174274)
Sürüm 1.5
Sürüm 1.5.1
19 Kasım 2025
androidx.window:window-*:1.5.1 iptal edilir. 1.5.1 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Belirli cihazlarda meydana gelen
ClassCastExceptionsorunu düzeltildi (4d58979).
Sürüm 1.5.0
24 Eylül 2025
androidx.window:window-*:1.5.0 iptal edilir. 1.5.0 sürümü bu commit'leri içerir.
1.4.0 sürümünden beri yapılan önemli değişiklikler:
- Large ve XLarge için
WindowSizeClassayrılma noktaları ekleyin. (I40d85) WindowMetricshesaplamasını Uygulama Bağlamı'na genişletin. (I8eeeb, b/360934048)WindowLayoutInfoöğesine doğrudan erişimi etkinleştirmek için bir Getter sağlayın (Ie9513)- Yerleştirme durumunu otomatik olarak kaydetmek ve uygulama işlemi yeniden başlatıldığında yerleştirme durumunu otomatik olarak geri yüklemek için API'yi kullanıma sunma. (Ie0295)
- Deneysel
WindowInsetsAPI'si kaldırıldı. (I68a71)
Hata Düzeltmeleri
- Bazı durumlarda
EmbeddingRule'nın farklıhashCodedöndürmesi sorunu düzeltildi. (I748cc) - Cihaz uygulamasındaki hatalar nedeniyle
NullPointerExceptionoluşabilmesi sorunu düzeltildi. - Proguard'ın kullanılmayan sınıfları kaldırması nedeniyle
ActivityEmbeddinggüvenlik kontrollerimizin başarısız olduğu durum düzeltildi.
Harici Katkı (External Contribution)
- Tüm KMP platformlarını
window-core'ya ekleyin (If3d7c)
Sürüm 1.5.0-rc01
27 Ağustos 2025
androidx.window:window-*:1.5.0-rc01 iptal edilir. 1.5.0-rc01 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Cihaz uygulamasındaki hatalar nedeniyle
NullPointerExceptionoluşabilmesi sorunu düzeltildi. - Proguard'ın kullanılmayan sınıfları kaldırması nedeniyle
ActivityEmbeddinggüvenlik kontrollerimizin başarısız olduğu durum düzeltildi.
Sürüm 1.5.0-beta02
13 Ağustos 2025
androidx.window:window-*:1.5.0-beta02 iptal edilir. 1.5.0-beta02 sürümü bu commit'leri içerir.
Yeni Özellikler
- Küçük hata düzeltmeleri.
Harici Katkı (External Contribution)
- Tüm KMP platformlarını
window-core'ya ekleyin (If3d7c)
Sürüm 1.5.0-beta01
2 Temmuz 2025
androidx.window:window-*:1.5.0-beta01 iptal edilir. 1.5.0-beta01 sürümü bu commit'leri içerir.
Sürüm 1.5.0-alpha02
7 Mayıs 2025
androidx.window:window-*:1.5.0-alpha02 iptal edilir. 1.5.0-alpha02 sürümü bu commit'leri içerir.
API Değişiklikleri
- Large ve XLarge için
WindowSizeClassayrılma noktaları ekleyin. (I40d85) WindowMetricshesaplamasını Uygulama Bağlamı'na genişletin. (I8eeeb, b/360934048)WindowLayoutInfoöğesine doğrudan erişimi etkinleştirmek için bir Getter sağlayın (Ie9513)- Yerleştirme durumunu otomatik olarak kaydetmek ve uygulama işlemi yeniden başlatıldığında yerleştirme durumunu otomatik olarak geri yüklemek için API'yi kullanıma sunma. (Ie0295)
- Deneysel
WindowInsetsAPI'si kaldırıldı. (I68a71) - Birkaç markayı gizleme (I87b8d)
Hata Düzeltmeleri
- Bazı durumlarda
EmbeddingRule'nın farklıhashCodedöndürmesi sorunu düzeltildi. (I748cc)
Sürüm 1.5.0-alpha01
12 Mart 2025
androidx.window:window-*:1.5.0-alpha01 iptal edilir. 1.5.0-alpha01 sürümü bu commit'leri içerir.
Yeni Özellikler
- 1.5.0 sürümünün ilk yayınlanması.
Sürüm 1.4
Sürüm 1.4.0
20 Mayıs 2025
androidx.window:window-*:1.4.0 iptal edilir. 1.4.0 sürümü bu commit'leri içerir.
1.3.0 sürümünden beri yapılan önemli değişiklikler
- Etkinlik Yerleştirme
- Başlatma animasyonlarını özelleştirmeye yönelik API
- Etkileşimli Ayırıcı
ActivityStackSabitleme- Tam Ekran İletişim Kutusu Karartma
- Yerleştirilmiş Etkinlik Penceresi Bilgileri Geri Çağırma İşlevi
- İyileştirilmiş
ActivityStackYönetimi - Etkinliği belirtilen bir
ActivityStackiçine başlatma
WindowMetricsCalculator- Test edilebilirlik desteğini iyileştirme
WindowMetricswithDpveheightDpdeğerlerini hesaplamanın kolay yöntemleri- Sınır kontrolünü
isAtLeastolarak güncelleyin ve yeni değerler eklemeyi desteklemek için alt sınırları kullanın.
WindowSizeClassWindowMetricskonumundan hesaplama yolu ekleme
WindowInfoTracker- Cihazda desteklenen duruşları algılamak için API ekleyin
Sürüm 1.4.0-rc02
23 Nisan 2025
androidx.window:window-*:1.4.0-rc02 iptal edilir. 1.4.0-rc02 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
ActivityEmbeddingiçin ProGuard kilitlenmesini düzeltin.
Sürüm 1.4.0-rc01
12 Mart 2025
androidx.window:window-*:1.4.0-rc01 iptal edilir. 1.4.0-rc01 sürümü bu commit'leri içerir.
Yeni Özellikler
WindowSizeClassAPI'sinde yapılan güncellemeler.- Activity yerleştirme API'lerinde yapılan güncellemeler.
Sürüm 1.4.0-beta02
12 Şubat 2025
androidx.window:window-*:1.4.0-beta02 iptal edilir. 1.4.0-beta02 sürümü bu commit'leri içerir.
Yeni Özellikler
- Yalnızca mülkte bulunan ancak alıcıda bulunmayan bir ek açıklamayı düzeltin.
Sürüm 1.4.0-beta01
15 Ocak 2025
androidx.window:window-*:1.4.0-beta01 iptal edilir. 1.4.0-beta01 sürümü bu commit'leri içerir.
Yeni Özellikler
ActivityEmbeddinganimasyonlarının özelleştirilmesine izin vermek için API ekleyin.- Pencere metriklerinin sahtesini oluşturmaya izin vermek için
WindowMetricsCalculatortest API'lerini genişletin.
API Değişiklikleri
- Birkaç markayı gizleme (I87b8d)
- Uygulamaların
ActivityEmbeddinganimasyonlarını özelleştirmesine izin ver (If31a8) watchosDeviceArm64KMP hedefi ve hedef kotlin 1.9 için destek eklendi (Icf15d, b/364652024)WindowMetricsCalculatorAPI'lerini kullanıma sunun. (I1cebf)
Hata Düzeltmeleri
- Bu kitaplık artık tür kullanımı olan JSpecify nullness ek açıklamalarını kullanıyor. Kotlin geliştiricileri, doğru kullanımı zorunlu kılmak için şu derleyici bağımsız değişkenini kullanmalıdır:
-Xjspecify-annotations=strict(Bu, Kotlin derleyicisinin 2.1.0 sürümünden itibaren varsayılan değerdir). (Ie69ac, b/326456246)
Sürüm 1.4.0-alpha05
16 Ekim 2024
androidx.window:window-*:1.4.0-alpha05 iptal edilir. 1.4.0-alpha05 sürümü bu commit'leri içerir.
Yeni Özellikler
WindowMetrics'denwidthDpveheightDpalmak için kolaylık işlevleri ekleyin.
API Değişiklikleri
WindowMetricsiçinwidthDpveheightDpekleyin. (Ide026)- Deneysel
WindowInsetsAPI'si kaldırıldı. (I68a71) - Sınır kontrolü yöntemi adlarını
isAtLeastolarak güncelleyin (Ib0ab7)
Sürüm 1.4.0-alpha04
2 Ekim 2024
androidx.window:window-*:1.4.0-alpha04 iptal edilir. 1.4.0-alpha04 sürümü bu commit'leri içerir.
API Değişiklikleri
WindowSizeClassdeğeriniWindowMetricsdeğerinden hesaplama yöntemi eklendi. (874dba)- Netlik için
WindowSizeClassyöntemlerinicontainsWidthDp,containsHeightDpvecontainsWindowSizeDpolarak değiştirin. (fa760d) WindowAreaControlleröğesini soyut temel sınıfa dönüştürün. (I90893)
Hata Düzeltmeleri
- Test oluştururken göreli sınırlar için destek ekleyin
FoldingFeature. (2e6b3e) WindowSizeClassseçilirken karşılaşılan genel hatalar düzeltildi.
Sürüm 1.4.0-alpha03
18 Eylül 2024
androidx.window:window-*:1.4.0-alpha03 iptal edilir. 1.4.0-alpha03 sürümü bu commit'leri içerir.
Yeni Özellikler
WindowMetricsdeğerindenWindowSizeClassdeğerini elde etmek için bir yardımcı yöntem ekleyin. (I83f1f)isAtLeastöğesinicontainsBreakpointolarak yeniden adlandırın. (I85b47)- Kayan nokta kullanarak
computeWindowSizeClassdeğerine aşırı yükleme ekleyin. (I3dcb2, b/364677934, b/364677802, b/364680886)
Hata Düzeltmeleri
- Varsayılan
WindowSizeClasskesme noktası kümesine eksik kesme noktaları ekleyin. - Bazı durumlarda kompakt boyutların doğru seçilmemesine neden olan hata düzeltildi.
Sürüm 1.4.0-alpha02
4 Eylül 2024
androidx.window:window-*:1.4.0-alpha02 iptal edilir. 1.4.0-alpha02 sürümü bu commit'leri içerir.
Yeni Özellikler
Özel WindowSizeClass desteği eklendi.
- Geliştiricilerin kendi oluşturucularını kullanabilmesi için
WindowSizeClassoluşturucusunu açın. - Geliştiricilerin bir dizi
WindowSizeClassdeğeri işleyebilmesi içinisAtLeastyardımcı yöntemleri ekleyin. - Kümedeki en iyi eşleşmeyi hesaplamak için
Set<WindowSizeClass>'ya bir uzantı işlevi ekleyin. - Android'in önerdiği kesme noktaları için sabitler ekleyin.
- Android'in önerdiği ayırma noktalarına karşılık gelen ayırma noktası kümesini ekleyin.
API Değişiklikleri
WindowSizeClassiçin sınırlama yöntemi adlarını güncelleyin. (If89a6)- Gelecekte yeni kesme noktası değerleri eklemeyi desteklemek için
WindowSizeClassAPI'sini güncelleyin. Mutlak sınırlar yerine alt sınırları kullanırız ve geliştiricilerin birWindowSizeClassişlerken alt sınır kontrollerini kullanmasını öneririz. MevcutWindowWidthSizeClassveWindowHeightSizeClass, daha fazla geliştirilmeyecekleri için kullanımdan kaldırılacak. (I014ce)
Sürüm 1.4.0-alpha01
7 Ağustos 2024
androidx.window:window-*:1.4.0-alpha01 iptal edilir. 1.4.0-alpha01 sürümü şu commit'leri içerir.
Yeni Özellikler
- ActivityStack Pinning, uygulamaların bir kapsayıcıdaki içeriği sabitlemesine ve gezinme işleminin diğer kapsayıcıdan izole edilmesine olanak tanır.
- Etkileşimli Ayırıcı, uygulamaların bölünmüş sunumda iki etkinlik arasında sabit veya sürüklenebilir bir ayırıcı göstermesine olanak tanır.
- Tam Ekran İletişim Kutusu Karartma, uygulamaların iletişim kutusu karartma alanını belirtmesine olanak tanır. Böylece, görev penceresinin tamamı veya yalnızca iletişim kutusunu gösteren kapsayıcı karartılabilir.
- Embedded Activity Window Info Callback, uygulamaların yerleştirilmiş etkinlik penceresinin güncellemelerini sürekli olarak almasına olanak tanır.
- Animasyon Arka Planını Yerleştirme, uygulamaların animasyon arka planını belirtmesine olanak tanıyarak
ActivityEmbeddingkullanıldığında geçiş animasyonunun kalitesini artırır. - Geliştirilmiş ActivityStack Yönetimi,
ActivityEmbeddingkullanılırken uygulamalarınActivityStacksüzerinde daha fazla kontrol sahibi olmasını sağlar. Bu kontroller şunlardır: - Belirli bir
ActivityStackiçinde etkinlik başlatma ActivityStacktamamlanıyor
API Değişiklikleri
Yeni bir API
WindowInfoTracker#supportedPostures:- Cihazın katlanabilir cihazlar için TableTop modunu destekleyip desteklemediğini belirlemeye yönelik bir API. WindowAreaSessionPresenter#getWindow işlevini ekler.
ActivityStacksabitlemeyi desteklemek için API'ler ekleyin:SplitPinRulesınıfSplitController#pinTopActivityStackSplitController#unpinTopActivityStack
Etkileşimli ayırıcıyı etkinleştirmek ve yapılandırmak için API'ler ekleme
DividerAttributessınıfSplitAttributes.Builder#setDividerAttributes
İletişim kutuları için
EmbeddingConfigurationveDimAreaBehaviorayarlamak üzere API'ler ekleyin.EmbeddingConfigurationsınıfDimAreaBehaviorsınıfActivityEmbeddingController#setEmbeddingConfiguration
Yerleştirilmiş etkinlik penceresi bilgisi güncellemelerini almak için API'ler ekleme
EmbeddedActivityWindowInfosınıfActivityEmbeddingController#embeddedActivityWindowInfo
Yerleştirme animasyonunun arka planını ayarlamak için API'ler ekleyin
EmbeddingAnimationBackgroundSplitAttributes.Builder#setAnimationBackground
ActivityStacksişlemini tamamlamak için API ekleyinActivityEmbeddingController#finishActivityStacks
Lansman ayarlarını yapmak için API'ler ekleyin
ActivityStackActivityEmbeddingOptions#setLaunchingActivityStack
Aşağıdaki API'ler kararlıdır ve artık deneysel değildir:
ActivityEmbeddingController#invalidateVisibleActivityStacks(SplitController#invalidateTopVisibleSplitAttributes konumundan taşındı)ActivityEmbeddingController#getActivityStackSplitController#updateSplitAttributes
1.4 için API'ler ekleyin. (I56774)
Hata Düzeltmeleri
- Oturum etkin olduğunda bazı cihazlarda ACTIVE yerine UNAVAILABLE değerinin döndürülmesine neden olan hata düzeltildi.
- Kararsız API desteği nedeniyle
vendorApiLeveldeğeri 2 olan cihazlardatransferActivityToWindowAreadesteği kaldırıldı. - Etkinlik yerleştirme sürüklenerek tam ekran yapılabilen ayırıcı için sürükleyerek tam ekran yapma özelliğini etkinleştiren API'yi kullanıma sunma. (I645c9)
- Uygulamaların,
SplitAttributesiçin animasyon parametreleri aracılığıylaActivityEmbeddinganimasyonlarını devre dışı bırakmasına izin verin. (Idc01a) - AGP 7.3 veya sonraki sürümleriyle (ör. R8 sürümü 3.3) R8 kullanılırken ve AGP 8.1 veya sonraki sürümleriyle (ör. D8 sürümü 8.1) tüm derlemeler kullanılırken yeni platform API'lerine erişimin manuel olarak ana hatlarının oluşturulması, API modelleme aracılığıyla otomatik olarak yapıldığından kaldırıldı. AGP kullanmayan müşterilerin D8'in 8.1 veya sonraki bir sürümüne güncellemeleri önerilir. Daha fazla bilgi için bu makaleye göz atın. (Ia60e0, b/345472586)
- Uzantıların
SplitAttributesiçin animasyon parametreleri almasına izin verin. Böylece cihaz, bu parametreleri animasyon geçişlerinde kullanabilir. (Iede00) - Yer paylaşımlı API'leri gizleme (Ic4251)
- Bölme için sabit veya sürüklenebilir ayırıcıyı yapılandırmak üzere API'ler kullanıma sunuldu (Ia7a78).
WindowMetricsiçin yoğunluk eklendi (Id6723)SupportedPosturesalmak için API ekleyin. (If557a)setLaunchingActivityStacköğesini deneysel API'den (I191cf) kaldırmaActivityEmbeddingController#embeddedActivityWindowInfoözelliğini kullanıma sunma (I24312)#getTokenöğesini kullanımdan kaldırın ve#getActivityStackTokenöğesini ekleyin (Ie0471)embeddedActivityWindowInfoakış API'si için geri çağırma bağdaştırıcısı kullanıma sunuldu (Ida77f).- overlayInfo flow API için geri çağırma bağdaştırıcısı ekleme (I7264f)
- Test için
WindowSdkExtensionsRuledeğeriniextensionsVersiondeğerini geçersiz kılacak şekilde ayarlayın. (Ifb928) - -
#setLaunchingActivityStackkullanımlarıyla uyumlu olması için#setLaunchingActivityStacköğesini pakete taşıyın.ActivityOptionsCompat- Kullanıcılar
ActvityOptionsyerineactivityOptions.toBundledeğerini iletmelidir. #setLaunchingActivityStack(Activity)öğesini kaldır Kullanıcılar,ActivityEmbeddingController#getActivityStac(Activity)hizmetini kullanarakActivityStackalmak veActivityStackhizmetini#setLaunchingActivityStack'ye iletmek için taşıma işlemi yapmalıdır. (Ie0ccc)
- Kullanıcılar
- - WM Jetpack ile uzantılar arasında iletişim kurmak için
ActivityStack.TokenveSpltInfo.Tokentanımlayıcılarını kullanıma sunun.- IBinder yerine Jeton almak/döndürmek için API'leri kullanımdan kaldırın/değiştirin. (I12b24)
- -
ActivityEmbeddingController#invalidateVisibleActivityStacksile tanışın- Özellik
#invalidateVisibleActivityStacksile birleştirildiğindenSplitController#invalidateTopVisibleSplitAttributeskaldırılıyor (I02ef5)
- Özellik
- - Yerleştirme yapılandırmasını ayarlamak için API ekleme. (I59a4a)
- - En çok kullanılan
ActivityStackandroidx.WindowAPI'lerini sabitleme/sabitliğini kaldırma- Demo uygulamasını, üstteki
ActivityStacköğesinin sabitlenmesine/sabitlenmesinin kaldırılmasına izin verecek şekilde güncelleme (I24dd3)
- Demo uygulamasını, üstteki
#finishActivityStacksveActivityEmbeddingOptions'ı yeniden ekleyin (Ic1ab3)- Kararsız API'leri kaldırın. (Ibc534, b/302380585)
Sürüm 1.3
Sürüm 1.3.0
29 Mayıs 2024
androidx.window:window-*:1.3.0 iptal edilir. 1.3.0 sürümü bu commit'leri içerir.
1.2.0 sürümünden beri yapılan önemli değişiklikler
- Pencere boyutu sınıfları için Kotlin Multiplatform desteği.
Sürüm 1.3.0-rc01
14 Mayıs 2024
WindowManager Jetpack 1.3, WindowSizeClass özellikleri için Kotlin Multiplatform desteğinin yanı sıra çeşitli hata düzeltmeleri sunar.
androidx.window:window-*:1.3.0-rc01 iptal edilir. 1.3.0-rc01 sürümü bu commit'leri içerir.
Sürüm 1.3.0-beta02
1 Mayıs 2024
androidx.window:window-*:1.3.0-beta02 iptal edilir. 1.3.0-beta02 sürümü bu commit'leri içerir.
API Değişiklikleri
- Özel
WindowSizeClassoluşturma ve kullanma desteği kaldırıldı. (Id1143)
Hata Düzeltmeleri
- Proguard'ın belirli cihaz uygulamalarında bazı dosyaları kaldırmasından kaynaklanan
KotlinReflectionInternalErrordüzeltildi. (I01b02)
Sürüm 1.3.0-beta01
3 Nisan 2024
androidx.window:window-*:1.3.0-beta01 iptal edilir. 1.3.0-beta01 sürümü bu commit'leri içerir.
Sürüm 1.3.0-alpha03
6 Mart 2024
androidx.window:window-*:1.3.0-alpha03 iptal edilir. 1.3.0-alpha03 sürümü bu commit'leri içerir.
API Değişiklikleri
WindowSizeClassUtildaha odaklanmış yöntemlere bölünür. (Ie9292)WindowSizeClass#computegeri yükleme (I21355, b/324293374)
Hata Düzeltmeleri
- Sağlanan bağlamın doğru şekilde sarmalanmasının kaldırılamaması nedeniyle oluşan kilitlenme sorunu düzeltildi. (94d10ce , b/318787482)
Sürüm 1.3.0-alpha02
7 Şubat 2024
androidx.window:window-*:1.3.0-alpha02 iptal edilir. 1.3.0-alpha02 sürümü şu commit'leri içerir.
Yeni Özellikler
- Kendi boyut sınıflarını kullanmak isteyen geliştiricilerin esnekliğini artırmak için Pencere Boyutu Sınıfı API'lerinin API yüzeyinde yapılan güncellemeler.
API Değişiklikleri
- Genişlik seçiciye yükseklik kısıtlamaları ekleyin. (I23393)
- Bir kümeden
WindowSizeClassseçmek için yardımcı işlevler ekleyin. Geliştiricilerin kendi seçicilerini yazabilmeleri için deneysel puanlama işlevleri ekleyin. Belirli bir sınır içinde en genişWindowSizeClassöğesini seçmek için bir seçici uzantısı işlevi ekleyin. (I0c944) - Özel ayrılma noktaları eklenebilmesi için
WindowSizeClassoluşturucuyu açın. (Ic1ff3) - Genişlik, yükseklik ve yoğunluktan boyut sınıfı oluşturmak için kolaylık işlevi eklendi. (If67f4)
Hata Düzeltmeleri
- Kayan noktalı değer 0'a kısaltıldığında oluşan istisna düzeltildi. (272ffac)
Sürüm 1.3.0-alpha01
15 Kasım 2023
androidx.window:window-*:1.3.0-alpha01 iptal edilir. 1.3.0-alpha01 sürümü şu commit'leri içerir.
Yeni Özellikler
- Arka ekrana erişmek için deneysel pencere API'lerini kullanıma sunar.
FoldingFeatureoluşturmaya yönelik test API'leri artık kararlı sürümde.- Sahte
ActivityEmbeddingdeğerleri ayarlamaya yönelik test API'leri artık kararlı sürümde. WindowLayoutInfoPublisherRuleartıkUiContextkaynağından değer alırken geçersiz kılmayı bildiriyor.WindowInfoTracker, katlama özelliği verileriniUiContextparametrelerine bildirir.- Cihazdaki uzantı sürümünü gösterin.
- Kullanıcı başına uygulama geçersiz kılmaları için
WindowPropertiessabitleri:PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE— Sisteme, uygulamanın kullanıcıya yönelik en-boy oranı uyumluluğu geçersiz kılma özelliğini devre dışı bıraktığını bildirir.PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE— Sisteme, uygulamanın kullanıcının en-boy oranı uyumluluğu geçersiz kılma ayarlarının tam ekran seçeneğini devre dışı bıraktığını bildirir.
Sürüm 1.2
Sürüm 1.2.0
15 Kasım 2023
androidx.window:window-*:1.2.0 iptal edilir. 1.2.0 sürümü şu commit'leri içerir.
1.1.0 sürümünden beri yapılan önemli değişiklikler
- Arka ekrana erişmek için deneysel pencere API'lerini kullanıma sunar.
FoldingFeatureoluşturmaya yönelik test API'leri artık kararlı sürümde.- Sahte
ActivityEmbeddingdeğerleri ayarlamaya yönelik test API'leri artık kararlı sürümde. WindowLayoutInfoPublisherRuleartıkUiContextkaynağından değer alırken geçersiz kılmayı bildiriyor.WindowInfoTracker, katlama özelliği verileriniUiContextparametrelerine bildirir.- Cihazdaki uzantı sürümünü gösterin.
Sürüm 1.2.0-rc01
1 Kasım 2023
androidx.window:window-*:1.2.0-rc01 iptal edilir. 1.2.0-rc01 sürümü şu commit'leri içerir.
Yeni Özellikler
- Arka ekrana erişmek için deneysel pencere API'lerini kullanıma sunar.
FoldingFeatureoluşturmaya yönelik test API'leri artık kararlı sürümde.- Sahte
ActivityEmbeddingdeğerleri ayarlamaya yönelik test API'leri artık kararlı sürümde. WindowLayoutInfoPublisherRuleartıkUiContextkaynağından değer alırken geçersiz kılmayı bildiriyor.WindowInfoTracker, katlama özelliği verileriniUiContextparametrelerine bildirir.- Cihazdaki uzantı sürümünü gösterin.
Sürüm 1.2.0-beta04
18 Ekim 2023
androidx.window:window-*:1.2.0-beta04 iptal edilir. 1.2.0-beta04 sürümü şu commit'leri içerir.
API Değişiklikleri
- Kararsız API'leri kaldırın. (Ibc534, b/302380585)
Sürüm 1.2.0-beta03
20 Eylül 2023
androidx.window:window-*:1.2.0-beta03 iptal edilir. 1.2.0-beta03 sürümü şu commit'leri içerir.
Yeni Özellikler
- Doğru çalışmak için belirli bir uzantı sürümü gerektiren API'ler için
RequiresApikontrolleri ekleyin. - Cihazdaki uzantı sürümünü kullanıma sunmak için bir API ekleyin.
API Değişiklikleri
- Gerekli pencere SDK'sı uzantı sürümünü herkese açık API'lerde belirtin.
- Etkinlik yerleştirme bileşenindeki
isXXXSupportedsimgesini kaldırın. (Ie3dae)
- Etkinlik yerleştirme bileşenindeki
- Cihazdaki uzantı sürümünü bildirmek için
WindowSdkExtensions'ı kullanıma sunuyoruz.- Gerekli minimum uzantı sürümünü belirtmek için
RequiresWindowSdkExtensionöğesini kullanıma sunuyoruz. (I05fd4)
- Gerekli minimum uzantı sürümünü belirtmek için
WindowAreaInfo#getCapabilitydeğerini boş değer atanamaz yapar. (I17048)
Sürüm 1.2.0-beta01
26 Temmuz 2023
androidx.window:window-*:1.2.0-beta01 iptal edilir. 1.2.0-beta01 sürümü şu commit'leri içerir.
Yeni Özellikler
- Arka ekrana erişmek için deneysel pencere API'lerini kullanıma sunar.
FoldingFeatureoluşturmaya yönelik test API'leri artık kararlı sürümde.- Sahte
ActivityEmbeddingdeğerleri ayarlamaya yönelik test API'leri artık kararlı sürümde. WindowLayoutInfoPublisherRuleartıkUiContextkaynağından değer alırken geçersiz kılmayı bildiriyor.WindowInfoTracker, katlama özelliği verileriniUiContextparametrelerine bildirir.
API Değişiklikleri
- 1.3'te (I857f5) kararlı bir sürüm için API değişikliklerinin devam etmesine izin vermek amacıyla
WindowAreaAPI'lerini deneysel olarak işaretler. - Uyumluluk bastırmayı açıklama eklemek için API dosyaları güncellendi (I8e87a, b/287516207)
Sürüm 1.2.0-alpha03
21 Haziran 2023
androidx.window:window-*:1.2.0-alpha03 iptal edilir. 1.2.0-alpha03 sürümü şu commit'leri içerir.
Yeni Özellikler
- Kullanımdan kaldırılan API'lerin API yüzeyinden kaldırılması.
- Eşzamanlı ekranları desteklemek için API'ler ekleyin.
- Zorunlu yeniden boyutlandırma geçersiz kılma özelliğini devre dışı bırakmak için bir özellik ekleyin.
- Minimum en boy oranı geçersiz kılma özelliğini devre dışı bırakmak için mülk ekleyin.
- Activity Embedding ile ilgili birim testini desteklemek için
ActivityEmbeddingRulekararlılığı sağlandı.
API Değişiklikleri
- Kullanımdan kaldırılan API'leri kaldırma (I18d39)
- Aynı anda birden fazla ekranda görüntüleme desteği ekleyin. (Ifcbb0)
Hata Düzeltmeleri
- Yeniden boyutlandırmayı zorunlu kılma geçersiz kılma için devre dışı bırakma uyumluluk özelliği ekleme (Ie7ab1)
- Uzantılar arayüzünden
SESSION_STATE_CONTENT_INVISIBLEkaldırılır. (I6ed19) - Etkinlik yerleştirme ile ilgili birim testini desteklemek için
ActivityEmbeddingRulekararlılığı sağlandı. (I8d6b6) - Minimum en boy oranı geçersiz kılma için devre dışı bırakma uyumluluk özelliği eklendi. (I66390)
- Desteği sonlandırılan WindowArea API'lerini kaldırır (Ieb67c)
- Yönlendirme isteği döngüsü özelliğini
PROPERTY_COMPAT_ALLOW_IGNORING_ORIENTATION_REQUEST_WHEN_LOOP_DETECTEDolarak yeniden adlandırın. (Ie2fbd) - Pencere alanı oturumu sabit adlarını günceller (I83675)
- Algılandığında yönlendirme isteği döngüsünü yoksayan devre dışı bırakma uyumluluk özelliği eklendi (I0a7a2).
- Özelliğin zaten etkin olduğunu belirtmek için
WindowAreaComponent#STATUS_ACTIVEsimgesini ekleyin. (I62bc3) RearDisplayPresentationModeAPI'lerini ekleme (I0401c)- Kararlı sürüm için arka plan rengini kaldırma API'si. (I34c3e)
- Pencere Alanı API'lerini gizleyin. (I39de0)
SplitControlleriçindeSplitInfodeğerini geçersiz kılacak yöntemler eklendi.SplitInfoveActivityStackiçin kopya oluşturmak üzere test yöntemleri ekleyin. (Icd69f)ActivityRule.Builderiçin etiketi isteğe bağlı hale getirin. (Ib0b44)RatioSplitType,ExpandContainersSplitveHingeSplitTypearaçlarını kaldırın. Bu kullanıcılar artıkSplitType.#splitEqually(),#expandContainers()ve#splitByHingedeğerlerini sabitSplitType SPLIT_TYPE_EQUAL,SPLIT_TYPE_EXPANDveSPLIT_TYPE_HINGEdeğerleriyle değiştirin.- Yedek menteşe bölünme türü ayarlama işlevini kaldırın. Mevcut cihaz veya pencere durumu nedeniyle menteşe bölme türü uygulanamıyorsa üst görev kapsayıcısı eşit şekilde bölünür. Yedek bölme türünü özelleştirmek için
SplitController#setSplitAttributesCalculatorsimgesini kullanın. (Ifcc59)
add/removeSplitCallbacköğesini kullanımdan kaldırınadd/removeSplitCallbacköğesiniSplitControllerCallbackAdapterkonumuna taşımaFlowlistesini almak içinSplitInfodesteği ekleyin (I7f1b6)
ActivityEmbeddingControlleriçin test kuralı ekleyin (I42e9b)ActivityOptionsCompatöğesiniActivityEmbeddingOptionsolarak yeniden adlandırma (I89301)- Etkinlik yerleştirmenin kullanılabilir olup olmadığını belirtmek için
splitSupportStatussimgesini ekleyin. (I10024) DEFAULTdeğerini daha iyi temsil etmek içinSplitAttributes.BackgroundColorözelliğini kullanıma sunun. Opak olmayan animasyon arka plan renginin desteklenmediği, bu nedenle opak olmayan renklerin varsayılan olarak kabul edileceği (yani mevcut tema penceresi arka plan renginin kullanılacağı) netleştirildi. (Ic6b95)alwaysAllow()vealwaysDisallow()yerineALWAYS_ALLOWveALWAYS_DISALLOWkoyun. (I3057b)SplitRule,SplitAttributes,SplitAttributesCalculatoriçin API'ler ekleyin. (I92d23)- Test için
ActivityStackoluşturmak üzereTestActivityStackekleyin.- Test için
SplitInfooluşturmak üzereTestSplitInfoekleyin. (I8e779)
- Test için
- Geliştiricilerin özelleştirilmiş
SplitAttributesCalculator'lerini doğrulayabilmeleri için sahteSplitAttributesCalculatorParamsoluşturma yöntemi ekleyin (Id4a6e) WindowMetricsCalculator#computeCurrentWindowMetrics(@UiContext context: Context)veWindowMetricsCalculator#computeMaximumWindowMetrics(@UiContext context: Context)'ı ekleyin (I66c7f)
Sürüm 1.2.0-alpha02
7 Haziran 2023
androidx.window:window-*:1.2.0-alpha02 iptal edilir. 1.2.0-alpha02 sürümü şu commit'leri içerir.
Yeni Özellikler
- Katlama özelliği belirtilmemiş olanlar için sabit bir değer içerecek şekilde test API'sini güncelleyin.
WindowLayoutInfoPublishRuleile geçersiz kılma, bağlama dayalı API dahil olmak üzerewindowLayoutInfo'nin tüm değerlerini geçersiz kılar.
API Değişiklikleri
- Belirtilmeyen merkezden katlama özelliği için sabit ekleyin. (I7530c)
Hata Düzeltmeleri
WindowLayoutInfotabanlıContextüzerinde geçersiz kılmaları desteklemek içinWindowLayoutInfoPublishRuleuygulamasını güncelleyin. (I2037a)
Sürüm 1.2.0-alpha01
24 Mayıs 2023
androidx.window:window-*:1.2.0-alpha01 iptal edilir. 1.2.0-alpha01 sürümü şu commit'leri içerir.
Yeni Özellikler
Activity Embedding ve WindowLayoutInfoTracker ile ilgili test API'lerini kararlılık kazandırın. ActivityEmbeddingRule sürümü kararlı sürüme yükseltildi.
WindowMetricsCalculatorRule sürümü kararlı sürüme yükseltildi.
Test için FoldingFeature oluşturmaya yönelik yardımcı işlevler kararlı sürüme yükseltildi.
API Değişiklikleri
- Etkinlik yerleştirme ile ilgili birim testini desteklemek için
ActivityEmbeddingRulekararlılığı sağlandı. (I8d6b6) WindowMetrisCalculatorTestRule, JVM testleri için sahte metriklerin kullanılmasına olanak tanıyacak şekilde kararlıdır. Doğru sonuçlar için bir emülatör kullanmanızı öneririz.- JVM testini desteklemek için
WindowLayoutInfotest API'lerini kararlı hale getirin. (Ie036e) - Test katlama özelliği değerleri için
IntRangeekleyin. (I69f7d)
Sürüm 1.1
Sürüm 1.1.0
7 Haziran 2023
androidx.window:window-*:1.1.0 iptal edilir. 1.1.0 sürümü şu commit'leri içerir.
1.0.0 sürümünden beri yapılan önemli değişiklikler
Etkinlik Yerleştirme
- Uygulama manifest dosyasında
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED,<application>etiketinin boole özelliği olarak eklendi. - Bölme özelliğinin neden kullanılamadığı hakkında daha ayrıntılı bilgi sağlamak için
isSplitSupporteddesteği sonlandırıldı vesplitSupportStatusile değiştirildi. SplitController.SplitSupportStatusözelliği için durum sabitleri sağlamak üzeresplitSupportStatusiç içe sınıfı eklendi.SplitController, birkaç modül olarak yeniden düzenlendi:ActivityveyaActivityStackile ilgili API'ler içinActivityEmbeddingControllermodülü.isActivityEmbedded,SplitControllerkonumundanActivityEmbeddingControllerkonumuna taşındı.EmbeddingRuleile ilgili işlemler içinRuleControllermodülü:- Kaldırılan
SplitControllerAPI'ler: clearRegisteredRules()getSplitRules()initialize()registerRule()unregisterRule()RuleControllerAPI'leri eklendi:addRule(): Bir kural ekler veya aynı etikete sahip kuralı günceller.removeRule(): Bir kuralı, kayıtlı kurallar koleksiyonundan kaldırır.setRules(): Kural koleksiyonu oluşturur.clearRules(): Kayıtlı tüm kuralları kaldırır.parseRules(): Kuralları XML kural tanımlarından ayrıştırır.
- Tüm modüllerin
#getInstance()yöntemiyle başlatılması için bağlam gerekir. Örneğin:ActivityEmbeddingController#getInstance(Context)SplitController#getInstance(Context)RuleController#getInstance(Context)
- Görüntü en boy oranıyla ilgili enum benzeri davranış sabitlerini tanımlamak için
EmbeddingAspectRatiosınıfı eklendi. - Bölünmüş düzeni tanımlamak için
SplitAttributessınıfı eklendi. - Bölünmüş düzenleri özelleştirmek için
SplitAttributeshesap makinesi işlevleriSplitController'e eklendi:setSplitAttributesCalculator(Function)clearSplitAttributesCalculator()isSplitAttributesCalculatorSupported()SplitAttributesCalculatorAPI'lerinin cihazda desteklenip desteklenmediğini kontrol etmek için
EmbeddingRule#tagalanı eklendi.SplitRuleadresindeki API güncellemeleri:defaultSplitAttributeseklendi: Bölünmüş bir düzenin varsayılan bölünmüş düzenini tanımlar;splitRatiovelayoutDirectionyerine kullanılır.splitRatiovesplitLayoutDirectionXML özelliklerinindefaultSplitAttributesdiline çevirisi eklendi.- Minimum boyut tanımları, piksel yerine yoğunluktan bağımsız pikselleri (dp) kullanacak şekilde değiştirildi.
- Varsayılan değeri 600 dp olan
minHeightDpeklendi. minWidth, varsayılan değeri 600 dp olanminWidthDpolarak değiştirildi.minSmallestWidth, varsayılan değeri 600 dp olanminSmallestWidthDpolarak değiştirildi.- Varsayılan değeri
ALWAYS_ALLOWolanmaxAspectRatioInHorizontaleklendi. - Varsayılan değeri 1,4 olan
maxAspectRatioInPortraiteklendi. - Tamamlama davranışı sabitlerinin yerine geçecek
FinishBehavioriç içe sınıfı tanımlandı. SplitPairRuleveSplitPlaceholderRuleöğesinin Builder iç içe yerleştirilmiş sınıfına özellik değişiklikleri uygulandı.
- Bölme ile ilgili ek bilgiler sağlamak için
SplitInfo#getSplitRatio()yerineSplitInfo#getSplitAttributes()kullanıldı.
WindowLayout
WindowInfoTracker'ya deneysel etkinlik dışı kullanıcı arayüzü bağlamı desteği eklendi.WindowMetricsCalculator'ya deneysel etkinlik dışı kullanıcı arayüzü bağlamı eklendi.
Taşıma adımları
- Etkinliklerin bölünmüş ekranlarda gösterilmesi için uygulamaların manifest
<application>etiketinePROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLEDözelliğini eklemesi gerekir:xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />Bu, sistemin bir uygulama için bölünmüş ekran davranışlarını önceden optimize etmesine olanak tanır. SplitInfooranı- Mevcut bölünmenin yığılmış olup olmadığını kontrol edin:
kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType - Mevcut oranı kontrol edin:
kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
- Mevcut bölünmenin yığılmış olup olmadığını kontrol edin:
- SplitController taşıma işlemleri:
SplitController.getInstance(),SplitController.getInstance(Context)olarak değişir.SplitController.initialize(Context, @ResId int),RuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int))olarak değişir.SplitController.getInstance().isActivityEmbedded(Activity),ActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity)olarak değişir.SplitController.getInstance().registerRule(rule),RuleController.getInstance(Context).addRule(rule)olarak değişir.SplitController.getInstance().unregisterRule(rule),RuleController.getInstance(Context).removeRule(rule)olarak değişir.SplitController.getInstance().clearRegisteredRules(),RuleController.getInstance(Context).clearRules()olarak değişir.SplitController.getInstance().getSplitRules(),RuleController.getInstance(Context).getRules()olarak değişir.
SplitRuleözellik taşıma işlemleri:minWidthveminSmallestWidthartık pikseller yerine dp birimlerini kullanıyor. Uygulamalar şu çağrıyı kullanabilir:kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )veyaminWithdeğerini piksel cinsindendisplayMetrics#densitydeğerine bölebilir.
- Tamamlama davranışı sabitleri,
FinishBehaviorenum benzeri sınıf sabitlerine taşınmalıdır:FINISH_NEVER,FinishBehavior.NEVERolarak değişir.FINISH_ALWAYS,FinishBehavior.ALWAYSolarak değişir.FINISH_ADJACENT,FinishBehavior.ADJACENTolarak değişir.
- Düzen yönü
SplitAttributes.LayoutDirection'ya taşınmalıdır:ltr,SplitAttributes.LayoutDirection.LEFT_TO_RIGHTolarak değişir.rtl,SplitAttributes.LayoutDirection.RIGHT_TO_LEFTolarak değişir.locale,SplitAttributes.LayoutDirection.LOCALEolarak değişir.splitRatio,SplitAttributes.SplitType.ratio(splitRatio)'ye taşınmalıdır.
SplitPairRule.Buildermigrations:SplitPairRule.Builder(filters, minWidth, minSmallestWidth),kotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.olarak değişir.setLayoutDirection(layoutDirection)vesetSplitRatio(ratio),kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )olarak değiştirildisetFinishPrimaryWithSecondaryvesetFinishSecondaryWithPrimary,FinishBehaviorenum benzeri sabitleri alır. Ayrıntılar için "SplitRule migrations" (Bölme kuralı taşımaları) başlıklı makaleyi inceleyin.- Dikey cihazlarda bölünmeleri göstermek için
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)simgesini kullanın.
SplitPlaceholder.Buildermigrations:- Yalnızca
filtersveplaceholderIntentparametrelerini içerir. Diğer özellikler ayarlayıcılara taşınır. Ayrıntılar için "SplitPairRule.Builder migrations" (SplitPairRule.Builder taşımaları) başlıklı makaleye bakın. setFinishPrimaryWithPlaceholder,FinishBehaviorenum benzeri sabitlerini alır. Ayrıntılar için "SplitRule migrations" (Bölme kuralı taşımaları) başlıklı makaleyi inceleyin.setLayoutDirection(layoutDirection)vesetSplitRatio(ratio)şu şekilde değişir:kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )- Dikey cihazlarda bölünmeleri göstermek için
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)simgesini kullanın.
- Yalnızca
Sürüm 1.1.0-rc01
10 Mayıs 2023
androidx.window:window-*:1.1.0-rc01 iptal edilir. 1.1.0-rc01 sürümü şu commit'leri içerir.
Yeni Özellikler
ActivityEmbedding'yı kararlı bir API olarak yayınlayın.- Çeşitli hata düzeltmeleri.
Sürüm 1.1.0-beta02
5 Nisan 2023
androidx.window:window-*:1.1.0-beta02 iptal edilir. 1.1.0-beta02 sürümü şu commit'leri içerir.
Yeni Özellikler
- Dahili düzeltmeler ve temizleme işlemleri.
Sürüm 1.1.0-beta01
22 Mart 2023
androidx.window:window-*:1.1.0-beta01 iptal edilir. 1.1.0-beta01 sürümü şu commit'leri içerir.
Etkinlik Yerleştirme
- Uygulama manifest dosyasında
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED,<application>etiketinin boole özelliği olarak eklendi. - Bölme özelliğinin neden kullanılamadığı hakkında daha ayrıntılı bilgi sağlamak için
isSplitSupporteddesteği sonlandırıldı vesplitSupportStatusile değiştirildi. SplitController.SplitSupportStatusözelliği için durum sabitleri sağlamak üzeresplitSupportStatusiç içe sınıfı eklendi.SplitController, birkaç modül olarak yeniden düzenlendi:ActivityveyaActivityStackile ilgili API'ler içinActivityEmbeddingControllermodülü.isActivityEmbedded,SplitControllerkonumundanActivityEmbeddingControllerkonumuna taşındı.EmbeddingRuleile ilgili işlemler içinRuleControllermodülü:SplitControllerAPI'leri kaldırıldı:clearRegisteredRules()getSplitRules()initialize()registerRule()unregisterRule()
RuleControllerAPI'leri eklendi:addRule(): Bir kural ekler veya aynı etikete sahip kuralı günceller.removeRule(): Bir kuralı, kayıtlı kurallar koleksiyonundan kaldırır.setRules(): Kural koleksiyonu oluşturur.clearRules(): Kayıtlı tüm kuralları kaldırır.- `parseRules()`: Kuralları XML kural tanımlarından ayrıştırır.
- Tüm modüllerin
#getInstance()yöntemiyle başlatılması için bağlam gerekir. Örneğin:ActivityEmbeddingController#getInstance(Context)SplitController#getInstance(Context)RuleController#getInstance(Context)
- Görüntü en boy oranıyla ilgili enum benzeri davranış sabitlerini tanımlamak için
EmbeddingAspectRatiosınıfı eklendi. - Bölünmüş düzeni tanımlamak için
SplitAttributessınıfı eklendi. - Bölünmüş düzenleri özelleştirmek için
SplitAttributeshesap makinesi işlevleriSplitController'e eklendi:setSplitAttributesCalculator(Function)clearSplitAttributesCalculator()isSplitAttributesCalculatorSupported()SplitAttributesCalculator API'lerinin cihazda desteklenip desteklenmediğini kontrol etmek için
EmbeddingRule#tagalanı eklendi.SplitRuleadresindeki API güncellemeleri:defaultSplitAttributeseklendi: Bölünmüş bir düzenin varsayılan bölünmüş düzenini tanımlar;splitRatiovelayoutDirectionyerine kullanılır.splitRatiovesplitLayoutDirectionXML özelliklerinindefaultSplitAttributesdiline çevirisi eklendi.- Minimum boyut tanımları, piksel yerine yoğunluktan bağımsız pikselleri (dp) kullanacak şekilde değiştirildi.
- Varsayılan değeri 600 dp olan
minHeightDpeklendi. minWidth, varsayılan değeri 600 dp olanminWidthDpolarak değiştirildi.minSmallestWidth, varsayılan değeri 600 dp olanminSmallestWidthDpolarak değiştirildi.- Varsayılan değeri
ALWAYS_ALLOWolanmaxAspectRatioInHorizontaleklendi. - Varsayılan değeri
1.4olanmaxAspectRatioInPortraiteklendi. - Tamamlama davranışı sabitlerinin yerine geçecek
FinishBehavioriç içe sınıfı tanımlandı. - Mülk değişikliklerini
SplitPairRuleveSplitPlaceholderRule'nin iç içe yerleştirilmişBuildersınıfına uyguladı.
- Bölme ile ilgili ek bilgiler sağlamak için
SplitInfo#getSplitRatio()yerineSplitInfo#getSplitAttributes()kullanıldı.
WindowLayout
WindowInfoTracker'ya etkinlik dışı kullanıcı arayüzü bağlamı desteği eklendi.WindowMetricsCalculatoröğesine etkinlik dışı kullanıcı arayüzü bağlamı eklendi.
Taşıma adımları
- Etkinliklerin bölünmüş ekranlarda gösterilmesi için uygulamaların manifest
<application>etiketinePROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLEDözelliğini eklemesi gerekir:xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />Bu, sistemin bir uygulama için bölünmüş ekran davranışlarını önceden optimize etmesine olanak tanır. SplitInfooranı- Mevcut bölünmenin yığılmış olup olmadığını kontrol edin:
kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType - Mevcut oranı kontrol edin:
kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
- Mevcut bölünmenin yığılmış olup olmadığını kontrol edin:
SplitControllermigrations:SplitController.getInstance(),SplitController.getInstance(Context)olarak değişir.SplitController.initialize(Context, @ResId int),RuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int))olarak değişir.SplitController.getInstance().isActivityEmbedded(Activity),ActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity)olarak değişir.SplitController.getInstance().registerRule(rule),RuleController.getInstance(Context).addRule(rule)olarak değişir.SplitController.getInstance().unregisterRule(rule),RuleController.getInstance(Context).removeRule(rule)olarak değişir.SplitController.getInstance().clearRegisteredRules(),RuleController.getInstance(Context).clearRules()olarak değişir.SplitController.getInstance().getSplitRules(),RuleController.getInstance(Context).getRules()olarak değişir.
SplitRuleözellik taşıma işlemleri:minWidthveminSmallestWidthartık pikseller yerine dp birimlerini kullanıyor. Uygulamalar şu çağrıyı kullanabilir:kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )veyaminWithdeğerini piksel cinsindendisplayMetrics#densitydeğerine bölebilir.
- Tamamlama davranışı sabitleri,
FinishBehaviorenum benzeri sınıf sabitlerine taşınmalıdır:FINISH_NEVER,FinishBehavior.NEVERolarak değişir.FINISH_ALWAYS,FinishBehavior.ALWAYSolarak değişir.FINISH_ADJACENT,FinishBehavior.ADJACENTolarak değişir.
- Düzen yönü
SplitAttributes.LayoutDirection'ya taşınmalıdır:ltr,SplitAttributes.LayoutDirection.LEFT_TO_RIGHTolarak değişir.rtl,SplitAttributes.LayoutDirection.RIGHT_TO_LEFTolarak değişir.locale,SplitAttributes.LayoutDirection.LOCALEolarak değişir.splitRatio,SplitAttributes.SplitType.ratio(splitRatio)'ye taşınmalıdır.
SplitPairRule.Buildermigrations:SplitPairRule.Builder(filters, minWidth, minSmallestWidth),kotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.olarak değişir.setLayoutDirection(layoutDirection)vesetSplitRatio(ratio),kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )olarak değişir.setFinishPrimaryWithSecondaryvesetFinishSecondaryWithPrimary,FinishBehaviorenum benzeri sabitleri alır. Ayrıntılar için "SplitRule migrations" (Bölme kuralı taşımaları) başlıklı makaleyi inceleyin.- Dikey cihazlarda bölünmeleri göstermek için
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)simgesini kullanın.
SplitPlaceholder.Buildermigrations:- Yalnızca
filtersveplaceholderIntentparametrelerini içerir. Diğer özellikler ayarlayıcılara taşınır. Ayrıntılar için "SplitPairRule.Builder migrations" (SplitPairRule.Builder taşımaları) başlıklı makaleye bakın. setFinishPrimaryWithPlaceholder,FinishBehaviorenum benzeri sabitlerini alır. Ayrıntılar için "SplitRule migrations" (Bölme kuralı taşımaları) başlıklı makaleyi inceleyin.setLayoutDirection(layoutDirection)vesetSplitRatio(ratio)şu şekilde değişir:kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )- Dikey cihazlarda bölünmeleri göstermek için
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)simgesini kullanın.
- Yalnızca
Sürüm 1.1.0-alpha06
22 Şubat 2023
androidx.window:window-*:1.1.0-alpha06 iptal edilir. 1.1.0-alpha06 sürümü şu commit'leri içerir.
Yeni Özellikler
WindowLayoutInfodeğerini kullanıcı arayüzü bağlamından alma işleminin deneysel sürümünü kullanıma sunar.
API Değişiklikleri
- Etkinlik yerleştirmenin kullanılabilir olup olmadığını belirtmek için
splitSupportStatussimgesini ekleyin. (I10024) - Kullanıcı arayüzü bağlamı
WindowLayoutInfoAPI'sini deneysel olarak kullanıma sunun. (I58ee0) WindowAreaControllerve API'leri tanıtarakRearDisplayModu'nun etkinleştirilmesini sağlar. Bu mod, geçerli pencereyi arka kamerayla hizalanmış ekrana taşır. (Iffcbf)- Varsayılan arka plan rengini güncelleyin. (I1ac1b)
SplitAttributesparametreleri ekleyin. (I18bdd)SplitRule,SplitAttributes,SplitAttributesCalculatoriçin API'ler ekleyin. (I92d23)maxAspectRatioile ilgili API'leri iyileştirme:alwaysAllow()vealwaysDisallow()yerineALWAYS_ALLOWveALWAYS_DISALLOWkoyun.- @see ile ilgili API belgelerini bağımsız belgelerle güncelleyin. (I3057b)
- Aşağıdaki oluşturucular, uygulamalar tarafından çağrılmaması gerektiğinden herkese açık API'lerden kaldırıldı.
SplitInfooluşturucuActivityStackconstructor (Ide534)
SplitRuleartıkmaxAspectRatioInPortrait/Landscapesürüyor. Yalnızca üst sınırlamaların en-boy oranı, istenenmaxAspectRatiodeğerinden küçük veya bu değere eşit olduğunda etkinliklerin bölünmesine izin verir. (Ia5990)RuleController#parseRulesdeğerini statik (I785df) olarak değiştirme- ActivityEmbedding ile ilgili API'leri iyileştirme
- API adlandırmasını hizalayın. Birden fazla örnek için ekleme/kaldırma işlemlerini kullanın:
registerRule,addRuleolarak değişirunregisterRule,removeRuleolarak değişirActivityRulebir bölme kuralı olmadığındangetSplitRulesyerinegetRuleskoyun- Bir dizi kural ayarlamak için
RuleController#setRulesekleyin SplitControllerile ilgili ayıklama kuralı API'lerini tekilRuleControllerolarak değiştirin. Bunları şöyle sıralayabiliriz:addRuleremoveRulegetRulessetRulesclearRulesparseRules#isActivityEmbeddeddosyasınıSplitControllerkonumundan tek öğeliActivityEmbeddingControllerkonumuna çıkarın. Bunları şöyle sıralayabiliriz:isActivityEmbeddedSplitController#initializeöğesini kaldır XML dosyasından kural ayarlamak için lütfenRuleController#parseRulesve#setRuleskullanın. Bu değişiklikten önce:SplitController.initialize(context, R.xml.static_rules)Bu değişiklikten sonra:val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules)- Artık statik kurallar ile çalışma zamanı kuralları arasında ayrım yapmıyoruz. Bununla birlikte, kurallar statik XML kural tanımlarıyla veya çalışma zamanında kaydedilmiş olsa da tüm kuralları temizlemek için
#clearRulessonuçları çağrılır.SplitController#clearRegisteredRulesözelliğinin eski davranışını kullanmak için lütfen XML kaynakları kimliğiyleRuleController#parseRulesişlevini çağırın ve kuralları tekrar ayarlamak içinRuleController#setRulesişlevini çağırın. Bu değişiklikten önce:SplitController.getInstance(context).clearRegisteredRules()Bu değişiklikten sonra:val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules)(Ib3967)
- SplitRule API'leri iyileştirildi:
SplitRuleiçin minimum boyutları piksel yerine DP cinsinden alın.SplitRuleOluşturucu için yeniden düzenleme yaparak minimum boyutları isteğe bağlı hale getirin. (I95f17)
SplitControlleröğesini başlatmak için bağlam geçirme (I42549)SplitRule#layoutDir,#layoutDirectionolarak,SplitRule Builder#setLayoutDiriseBuilder#setLayoutDirectionolarak yeniden adlandırıldı. (I3f6d1)
Sürüm 1.1.0-alpha04
9 Kasım 2022
androidx.window:window-*:1.1.0-alpha04 iptal edilir. 1.1.0-alpha04 sürümü şu commit'leri içerir.
Yeni Özellikler
ActivityEmbeddingiçinActivityStacköğesinin boş olup olmadığını belirlemeye yarayan bir yöntem sunun.ActivityEmbeddingAPI'lerinden deneysel API etiketleri kaldırıldı.ActivityRuleoluşturucusunu gizleyin. ÇünküBuilder, oluşturmak için tercih edilen yöntemdir.WindowMetricsüzerindeWindowInsetsalmak için deneysel bir yöntem ekleyin.- Yer tutucunun tamamlanmasını önlemek için
SplitPlaceholderFinishBehavioruygulamasını güncelleyin. Yer tutucuyu tamamlama işlemi, kafa karıştırıcı davranışlara neden oluyordu.
API Değişiklikleri
- Eğlenceli
isEmptyyerine herkese açık valisEmptyoluşturun. ActivityStackparametre etkinlikleriniactivitiesInProcessolarak yeniden adlandırın. (Ia5055)ActivityFilter#matchesClassNameveActivityFilter#matchesClassNameOrWildCard, kafa karıştırıcı olduğu için kaldır.- Arayanın farklı filtreleri ayırt edebilmesi için
ActivityFilter#componentNameabdActivityFilter#intentActionifadesini ekleyin (I41f22). @DeprecatedAPI'leri deneysel API'den (I216b3) kaldırma- Etkinlik yerleştirme API'leri için
@ExperimentalWindowApisimgesini kaldırın (I69ebe) ActivityRuleoluşturucusunu gizleyin, bunun yerine Builder'ı kullanın. (If4eb6)- Bir etkinliğin
ActivityFilterkapsamında olup olmadığını kontrol etmek için API'ler ekleyin. (Ia43cf) WindowMetricsveWindowMetricsCalculatorCompatsınıflarındaki değişiklikleri yansıtmak için API dosyalarını güncelleme (I667fe)ActivityEmbeddingözelliği Javadoc'unu ve sınıf adını (Ia1386) güncelleme- AndroidManifest.xml'de kullanılacak
ActivityEmbeddingözellik etiketi adlarını ekleme (Id1ad4) - Yeni API'ler
SplitPlaceholderFinishBehaviorveSplitPlaceholderRule.finishPrimaryWithPlaceholdereklendi. Bu API'ler, yer tutucu etkinliklerin ne zaman tamamlandığını ve Etkinlik Yerleştirme'deki ilişkili etkinliklerin nasıl davranması gerektiğini tanımlayan mevcutSplitPlaceholderRule.finishPrimaryWithSecondaryAPI'sinin yerini alıyor. (I64647)
Hata Düzeltmeleri
WindowAreaControllerve API'leri tanıtarakRearDisplayModu'nun etkinleştirilmesini sağlar. Bu mod, geçerli pencereyi arka kamerayla hizalanmış ekrana taşır. (I388ab)
Sürüm 1.1.0-alpha03
27 Temmuz 2022
androidx.window:window-*:1.1.0-alpha03 iptal edilir. 1.1.0-alpha03 sürümü şu commit'leri içerir.
Yeni Özellikler
- Yerleştirme kurallarının varsayılan değerlerini güncelleyin.
API Değişiklikleri
- Yerleştirme kuralı özelliklerinin varsayılan değerlerini güncelleyin. (Ic4d35)
Sürüm 1.1.0-alpha02
11 Mayıs 2022
androidx.window:window-*:1.1.0-alpha02 iptal edilir. 1.1.0-alpha02 sürümü şu commit'leri içerir.
Yeni Özellikler
- Java ve RxJava'yı desteklemek için bağdaştırıcı kitaplıkları yayınlayın.
Sürüm 1.1.0-alpha01
11 Mayıs 2022
androidx.window:window-*:1.1.0-alpha01 iptal edilir. 1.1.0-alpha01 sürümü şu commit'leri içerir.
Yeni Özellikler
- Java ve RxJava'yı desteklemek için adaptörleri yayınlayın
Sürüm 1.1.0-alpha01
20 Nisan 2022
androidx.window:window:1.1.0-alpha01 iptal edilir. 1.1.0-alpha01 sürümü şu commit'leri içerir.
Yeni Özellikler
- Bir uygulamanın arka plana alınması durumunda katlama özelliklerinin kullanılmasını engelleyen hata düzeltildi.
- Deneysel ActivityEmbedding API'yi genişletin.
API Değişiklikleri
- Bir etkinliğin yerleştirilip yerleştirilmediğini kontrol etmek için kullanılan herkese açık bir API. (I39eb7)
Hata Düzeltmeleri
- Etkinlik bölümlerindeki kapsayıcılar için sonlandırma davranışını özelleştiren API'ler eklendi (I1a1e4).
- Etkinlik bölme kuralları için yeni bir yapılandırma seçeneği eklendi. (Iec6af)
Sürüm 1.0
Sürüm 1.0.0
26 Ocak 2022
androidx.window:window-*:1.0.0 iptal edilir. 1.0.0 sürümü şu commit'leri içerir.
1.0.0 sürümünün temel özellikleri
WindowInfoTrackerveFoldingFeaturearacılığıyla katlanabilir telefonlar için destek. Mevcut WindowMetrics'i hesaplamaya yardımcı olması içinWindowMetricsCalculator.
Sürüm 1.0.0-rc01
15 Aralık 2021
androidx.window:window-*:1.0.0-rc01 iptal edilir. 1.0.0-rc01 sürümü şu commit'leri içerir.
Yeni Özellikler
WindowInfoTrackeraracılığıyla katlanabilir telefonlar için destek ekleyin.- Mevcut ve maksimum
WindowMetricsdeğerini hesaplamak için yöntemler ekleyin. - Destekleyici test API'leri ekleyin.
Sürüm 1.0.0-beta04
17 Kasım 2021
androidx.window:window-*:1.0.0-beta04 iptal edilir. 1.0.0-beta04 sürümü şu commit'leri içerir.
Yeni Özellikler
- WindowInfoRepository'yi WindowInfoTracker olarak yeniden adlandırın.
- Activity'yi WindowInfoTracker için açık bir yöntem bağımlılığı yapın.
- Robolectric kullanan geliştiricileri desteklemek için WindowMetricsCalculator'a basit bir TestRule ekleyin.
API Değişiklikleri
- Ayıklama uzantıları (I25a5f)
- add isEmpty in ActivityStack (I5a4e6)
- WindowInfoRepository'yi WindowInfoTracker olarak yeniden adlandırın.
- java/rxjava/testing bağımlılıklarını eşleşecek şekilde güncelleyin. (I0da63)
- Basit bir WindowMetricsCalculator için test kuralı ekleyin. (Ibacdb)
Sürüm 1.0.0-beta03
27 Ekim 2021
androidx.window:window-*:1.0.0-beta03 iptal edilir. 1.0.0-beta03 sürümü şu commit'leri içerir.
Yeni Özellikler
- Deneysel Aktivite Yerleştirme API'leri eklendi. Bu ilk düzen sürümü, iki etkinliğin yan yana gösterilmesine olanak tanır.
API Değişiklikleri
- Doğru şekilde sağlayamadığımız için currentWindowMetrics API'yi kaldırdık. Lütfen bunun yerine WindowMetricsCalculator'ı kullanın (Icda5f).
- Uzantılar API'si güncellendi. (Ica92b)
- Etkinliklerin yerleştirilmesine ve üst görev penceresinde yan yana gösterilmesine olanak tanıyan yeni bir özellik için arayüz eklendi. (I5711d)
- WindowMetrics ve WindowLayoutInfo için oluşturucular gizlendi. Lütfen bunun yerine test API'lerini kullanın. (I5a1b5)
- Sahte WindowLayoutInfo nesneleri oluşturmak için bir API ekleyin. (I4a2fd)
Hata Düzeltmeleri
- Bellek sızıntısı düzeltildi. (I3fc79, b/202989046)
Sürüm 1.0.0-beta02
1 Eylül 2021
androidx.window:window-*:1.0.0-beta02 iptal edilir. 1.0.0-beta02 sürümü şu commit'leri içerir.
Yeni Özellikler
- Deneysel API'leri açıklamak için deneysel bir açıklama ekleyin. (I9f1b6)
- Bir Rect kabul eden test FoldingFeature oluşturmak için test yöntemi ekleyin. Bu, gerçek bir etkinlik yerine Robolectric'i kullanırken test etmeyi kolaylaştırır. (Id1cca)
Sürüm 1.0.0-beta01
18 Ağustos 2021
androidx.window:window-*:1.0.0-beta01 iptal edilir. 1.0.0-beta01 sürümü şu commit'leri içerir.
Yeni Özellikler
- Eski sabitler kaldırıldı ve
FoldingFeaturebir arayüz haline getirildi.
API Değişiklikleri
- Eski sabitleri kaldırın ve FoldFeature'ı arayüz haline getirin. (I9a2d5)
Hata Düzeltmeleri
Test Corekitaplığına bağlı kitaplıklar1.4.0sürümüne yükseltildi ve artık Android platformu S sürümüyle çalışacak. (I88b72, b/189353863)
Sürüm 1.0.0-alpha10
4 Ağustos 2021
androidx.window:window-*:1.0.0-alpha10 iptal edilir. 1.0.0-alpha10 sürümü şu commit'leri içerir.
Yeni Özellikler
- WindowInfoRepo'yu WindowInfoRepository olarak yeniden adlandırın ve ilgili sınıfları / dosyaları düzenleyin.
- Değer zaman içinde değiştiğinden, mevcut pencere metriklerini WindowInfoRepository'de bir Flow'a dönüştürün.
- WindowInfoRepoJavaAdapter'ı WindowInfoRepoCallbackAdapter olarak yeniden adlandırın.
- Test FoldingFeature nesneleri oluşturmak için yardımcı yöntem ekleyin
- Paketleri, destekledikleri özelliğe göre sınıfları gruplandıracak şekilde güncelleyin.
API Değişiklikleri
- ActivityExt'i ActivityExtensions olarak yeniden adlandırın. Repo'yu Repository olarak değiştirin. (I61a16)
- Sınıflar için paketleri güncelleyin. (I23ae2)
- WindowInfoRepo'dan WindowMetrics'i kaldırın (I24663)
- WindowManager'ı kaldırın ve WindowInfoRepo'yu kullanın
- WindowBackend'i dahili yapın. (I06d9a)
- Pencere metriklerini Flow'a dönüştürün.
- Java bağdaştırıcısını WindowInfoRepoCallbackAdapter olarak yeniden adlandırın.
- Deneysel API'lerin kullanılmaması için callbackFlow'u kaldırın. (Ia4d15)
- Test görüntüleme özellikleri oluşturmak için yardımcı yöntem ekleyin.
- occlusionMode'dan occlusionType'a geçiş (If4cff)
Hata Düzeltmeleri
- Çekirdek kitaplığın kaldırıldığı proguard hatası düzeltildi.
- WindowLayoutInfo'nun ek abonelere teslim edilmemesine neden olan hata düzeltildi.
- Yapılandırma değişikliklerinin katlama özelliği güncellemelerini tetiklememesi hatası düzeltildi.
Sürüm 1.0.0-alpha09
30 Haziran 2021
androidx.window:window-*:1.0.0-alpha09 iptal edilir. 1.0.0-alpha09 sürümü şu commit'leri içerir.
Yeni Özellikler
- Tam sayı sabitlerinden sınırsız numaralandırılmış değerlere geçiş yapın.
- Test katlama özellikleri oluşturmak için bir test yardımcı programı ekleyin.
API Değişiklikleri
- Test görüntüleme özellikleri oluşturmak için yardımcı yöntem ekleyin. (I3cf54)
occlusionModeolan önceki oran,occlusionTypeolarak değişti.
Hata Düzeltmeleri
- Veri akışlarına birden fazla tüketici eklerken başlangıç değerini yayınlayın.
Sürüm 1.0.0-alpha08
16 Haziran 2021
androidx.window:window-*:1.0.0-alpha08 iptal edilir. 1.0.0-alpha08 sürümü şu commit'leri içerir.
Yeni Özellikler
- WindowInfoRepository kullanılırken test etmeyi kolaylaştırmak için bir test yapısı yayınlandı. DisplayFeatures ve WindowMetrics hakkında bilgi edinmek için WindowInfoRepository'yi kullanın. (I57f66, Ida620)
Sürüm 1.0.0-alpha07
2 Haziran 2021
androidx.window:window-*:1.0.0-alpha07 iptal edilir. 1.0.0-alpha07 sürümü şu commit'leri içerir.
Yeni Özellikler
- Temel pencere kitaplığını Kotlin'e taşıma. Gelecekte eşzamansız verileri kullanıma sunmak için coroutine'leri ve askıya alma işlevlerini kullanacak.
- WindowMetrics ve WindowLayoutInfo akışını almak için ana etkileşim noktası olarak WindowInfoRepo'yu ekleyin.
- Geri çağırma işlevlerini kaydetmek ve kaydını silmek için Java dostu API'leri kullanıma sunan yeni
window-javayapısı. - RxJava'ya uyarlanmış API'leri kullanıma sunmak için yeni
window-rxjava2vewindow-rxjava3yapıları.
API Değişiklikleri
- Bağımlılıkları tek tip olarak sağlamak için
WindowServicesekleyin.- Pencere düzeni bilgilerini kullanmak için coroutine tabanlı API eklendi. (Iab70f)
- Temel pencere yöneticisi kitaplığını Kotlin'e taşıma. (Icca34)
Hata Düzeltmeleri
- Özellik sınırlarını temsil etmek için yeni veri sınıfı ekleyin. (I6dcd1)
Sürüm 1.0.0-alpha06
5 Mayıs 2021
androidx.window:window:1.0.0-alpha06 iptal edilir. 1.0.0-alpha06 sürümü şu commit'leri içerir.
Yeni Özellikler
- Kotlin'e geçiş sürecimizi başlattık ve bir sonraki sürümde tamamlayacağız.
- DeviceState, genel API'den kaldırıldı. Lütfen bunun yerine FoldingFeature'ı kullanın.
- Şu anda hiçbir kullanım alanında desteklenmediği için
STATE_FLIPPED, FoldingFeature durumlarından kaldırıldı. - Kullanımdan kaldırılan diğer API'ler de kaldırıldı.
API Değişiklikleri
- Kotlin'i bağımlılık olarak ekleme
- Çekirdek kitaplığı Kotlin'e taşıma (Idd995)
DisplayFeatureoluşturucu kaldırıldı. (I61fa4)DeviceState, herkese açık API'den kaldırıldı. Bunun yerineFoldingFeaturekullanın. (Id6079)- Uzantılardan cihaz durumu geri aramasını kaldırın. (I5ea83)
STATE_FLIPPED, FoldingFeature'dan kaldırıldı. (I9c4e1)- Desteği sonlandırılan kayıt yöntemleri kaldırıldı. (Ib381b)
Sürüm 1.0.0-alpha05
24 Mart 2021
androidx.window:window:1.0.0-alpha05 iptal edilir. 1.0.0-alpha05 sürümü şu commit'leri içerir.
Yeni Özellikler
Uygulamaların, özelliğin ayırıp ayırmadığını, kapatıp kapatmadığını ve menteşenin yönünü belirleyebilmesi için FoldingFeature'a kolaylık sağlayan yöntemler ekledik. Ayrıca, menteşe türünü de gizliyoruz.
WindowManager'dan senkron okuma yöntemlerini kaldırıyoruz. Örtülü bir yarış durumu olduğundan senkron okuma yöntemleri hataya açıktır. WindowLayoutInfo ile ilgili güncellemeleri almak için dinleyicileri ve geri aramaları kaydedin.
API Değişiklikleri
- FoldingFeatures ile çalışmak için kolaylık sağlayan yöntemler ekleyin (Ie733f).
- WindowManager'dan eşzamanlı okuma yöntemleri kaldırıldı (I96fd4).
Sürüm 1.0.0-alpha04
10 Mart 2021
androidx.window:window:1.0.0-alpha04 iptal edilir. 1.0.0-alpha04 sürümü şu commit'leri içerir.
Yeni Özellikler
- OEM uygulaması yoksa WindowLayoutInfo'nun yayınlanmamasına neden olan hata düzeltildi. Şimdi boş bir WindowLayoutInfo yayınlıyoruz.
- Uygulama arka plandayken menteşe durumu değiştiğinde durumun düzgün şekilde güncellenmemesine neden olan hata düzeltildi. Artık eyalet bilgisi tutarlı olmalıdır.
- Çalışma zamanı bağımlılıklarından gelen uyarıları yoksaymak için ProGuard dosyalarımızı güncelleyin.
Hata Düzeltmeleri
- OEM kitaplığı eksik olduğunda boş bir değer yayınlayın. (Ide935)
Sürüm 1.0.0-alpha03
18 Şubat 2021
androidx.window:window:1.0.0-alpha03 iptal edilir. 1.0.0-alpha03 sürümü şu commit'leri içerir.
Yeni Özellikler
- OEM uygulaması boş olduğunda WindowLayoutInfo için boş bir değer yayınlayın. Bu sayede kitaplığı daha fazla cihazda kullanmak kolaylaşır. API'ler eşzamansız olduğundan, uygulamaların yine de bazı savunma amaçlı kodlar yazması ve zaman aşımından sonra varsayılan bir değer yayınlaması önerilir. OEM uygulamalarıyla ilgili herhangi bir garantimiz yoktur ve ilk değer gecikebilir.
Hata Düzeltmeleri
- OEM kitaplığı eksik olduğunda boş bir değer yayınlayın. (Ide935)
Sürüm 1.0.0-alpha02
27 Ocak 2021
androidx.window:window:1.0.0-alpha02 iptal edilir. 1.0.0-alpha02 sürümü şu commit'leri içerir.
Yeni Özellikler
API'yi kolaylaştırmak ve hataları azaltmak için bazı API'lerin desteğini sonlandırdık. WindowManager'dan senkron okuma işlemlerinin kaldırılması ve DeviceState'in desteğinin sonlandırılması bu değişikliklere örnek olarak verilebilir. Senkron okuma işlemleri, yarışma koşullarına yol açabilir ve kullanıcı arayüzünün yanlış olmasına neden olabilir.
DisplayFeature'ı, diğer özelliklerin bundan sonra uygulayacağı bir arayüze dönüştürdük. İlk özelliğimiz, artık ekran katlamasını veya menteşeyi temsil eden FoldingFeature. Bu, DeviceState'in yerini alan menteşenin durumunu da içerir.
WindowMetrics, geliştiricilere bir pencereyle ilgili metrikleri (ör. ekrandaki konumu ve boyutu ile sistem yerleşimleri) sorgulamak için basit bir yöntem sunmak amacıyla Android 11'de kullanıma sunulmuştur. Bu sürümde API'yi geriye dönük olarak taşıdık. Böylece geliştiriciler WindowMetrics'ten yararlanabilir ve eski Android sürümlerini desteklemeye devam edebilir. WindowMetrics,
WindowManager#getCurrentWindowMetrics()ve WindowManager#getMaximumWindowMetrics() API'leri aracılığıyla elde edilebilir.
API Değişiklikleri
- Bir sonraki alfa sürümünde (Ib7cc4) kaldırılacak API'lerin desteğini sonlandırma
- Açık Etkinlik referanslarını kabul etmek için
ExtensionInterfacegüncellendi. (I07ded) - WindowMetrics API'yi tanıtır. (I3ccee)
- WindowManager'dan senkron okuma yöntemlerini kaldırma (I69983)
- ExtensionWindowBackend paketini korumalı hale getirin. (Ied208)
Hata Düzeltmeleri
- Görsel bağlamları kabul etmek için
ExtensionInterfaceAPI'lerini güncelleyin. (I8e827)
Harici Katkı (External Contribution)
- Verilere erişimi kolaylaştırmak için DeviceState ve WindowLayoutInfo'yu birleştirin. (Id34f4)
Sürüm 1.0.0-alpha01
27 Şubat 2020
androidx.window:window:1.0.0-alpha01 ve androidx.window:window-extensions:1.0.0-alpha01 yayınlandı. 1.0.0-alpha01 sürümü şu commit'leri içerir.
Bu, Window Manager kitaplığının ilk sürümüdür.
Yeni özellikler
DisplayFeature: Bu yeni API, menteşeler veya katlamalar gibi sürekli düz ekran yüzeylerindeki kesintileri tanımlar.DeviceState: Bu yeni API, tanımlanmış duruşlar listesinden (ör.CLOSED,OPENED,HALF_OPENEDvb.) telefonun mevcut duruşunu sağlar.