WindowManager
| Son Güncelleme | Kararlı sürüm | Sürüm Adayı | Beta Sürümü | Alfa sürümü |
|---|---|---|---|---|
| 24 Eylül 2025 | 1.5.0 | - | - | - |
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ıtların bağımlılıklarını ekleyin:
Groovy
dependencies { implementation "androidx.window:window:1.5.0" // For Java-friendly APIs to register and unregister callbacks implementation "androidx.window:window-java:1.5.0" // For RxJava2 integration implementation "androidx.window:window-rxjava2:1.5.0" // For RxJava3 integration implementation "androidx.window:window-rxjava3:1.5.0" // For testing implementation "androidx.window:window-testing:1.5.0" }
Kotlin
dependencies { implementation("androidx.window:window:1.5.0") // For Java-friendly APIs to register and unregister callbacks implementation("androidx.window:window-java:1.5.0") // For RxJava2 integration implementation("androidx.window:window-rxjava2:1.5.0") // For RxJava3 integration implementation("androidx.window:window-rxjava3:1.5.0") // For testing implementation("androidx.window:window-testing:1.5.0") }
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.5
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:
- Büyük ve çok büyük boyutlar için
WindowSizeClassayrılma noktaları ekleyin. (I40d85) WindowMetricshesaplamasını Uygulama Bağlamı'na genişletin. (I8eeeb, b/360934048)WindowLayoutInfo'ya doğrudan erişimi etkinleştirmek için 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'yi kaldırın. (I68a71)
Hata Düzeltmeleri
- Bazı durumlarda
EmbeddingRulefarklıhashCodedöndürme sorunu düzeltildi. (I748cc) - Cihaz uygulamasındaki hatalar nedeniyle
NullPointerExceptionoluşması 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şması 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
- Büyük ve çok büyük boyutlar için
WindowSizeClassayrılma noktaları ekleyin. (I40d85) WindowMetricshesaplamasını Uygulama Bağlamı'na genişletin. (I8eeeb, b/360934048)WindowLayoutInfo'ya doğrudan erişimi etkinleştirmek için 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'yi kaldırın. (I68a71) - Birkaç yapımcıyı gizleme (I87b8d)
Hata Düzeltmeleri
- Bazı durumlarda
EmbeddingRulefarklıhashCodedöndürme 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ını.
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 İşlemi
- İyileştirilmiş
ActivityStackYönetimi - Etkinliği belirtilen bir
ActivityStackiçine başlatma
WindowMetricsCalculator- Test edilebilirlik desteğini iyileştirme
WindowMetricswithDpveheightDpdeğerlerini hesaplamanın kolay yolları- Sınır kontrolünü
isAtLeastolarak güncelleyin ve yeni değerler eklemeyi desteklemek için alt sınırları kullanın.
WindowSizeClassWindowMetricskaynağından hesaplama yöntemi 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.- Etkinlik 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ç yapımcıyı 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 aşağıdaki 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 onayları içerir.
Yeni Özellikler
WindowMetrics'denwidthDpveheightDpalmak için kolaylık işlevleri ekleyin.
API Değişiklikleri
WindowMetricslistesinewidthDpveheightDpöğelerini ekleyin. (Ide026)- Deneysel
WindowInsetsAPI'yi kaldırın. (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 öğeler kullanarak
computeWindowSizeClassöğesine 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öntemler 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 kesme noktalarına karşılık gelen kesme 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 bağımsız olmasına 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 penceresiyle ilgili güncellemeleri sürekli olarak almasına olanak tanır.
- Animasyon Arka Planını Yerleştirme, uygulamaların animasyon arka planını belirtmesine olanak tanır. Bu sayede,
ActivityEmbeddingkullanıldığında geçiş animasyonunun kalitesi artırılı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 yarayan 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 ekleyin
DividerAttributessınıfSplitAttributes.Builder#setDividerAttributes
İletişim kutuları için
EmbeddingConfigurationveDimAreaBehaviorayarlamak üzere API'ler ekleyinEmbeddingConfigurationsınıfDimAreaBehaviorsınıfActivityEmbeddingController#setEmbeddingConfiguration
Yerleştirilmiş etkinlik penceresi bilgisi güncellemelerini almak için API ekleme
EmbeddedActivityWindowInfosınıfActivityEmbeddingController#embeddedActivityWindowInfo
Yerleştirme animasyonunun arka planını ayarlamak için API'ler ekleme
EmbeddingAnimationBackgroundSplitAttributes.Builder#setAnimationBackground
ActivityStacksişlemini tamamlamak için API ekleyinActivityEmbeddingController#finishActivityStacks
Lansman ayarlarını yapmak için API ekleme
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 ACTIVE yerine UNAVAILABLE döndürülen belirli cihazlardaki hata düzeltildi.
- Kararsız API desteği nedeniyle
vendorApiLeveldeğeri 2 olan cihazlardatransferActivityToWindowAreadesteği kaldırıldı. - Etkinlik yerleştirme için sürüklenerek tam ekran özelliğini etkinleştirmek üzere 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şımı API'lerini 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#embeddedActivityWindowInfoile tanışın (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 akışı API'si için geri çağırma adaptörü ekleme (I7264f)
- Test için
WindowSdkExtensionsRule'ı kullanarakextensionsVersion'ı geçersiz kılın. (Ifb928) - -
#setLaunchingActivityStackkullanımlarıyla uyumlu olması için#setLaunchingActivityStack'ı Bundle'a taşıyın.ActivityOptionsCompat- Kullanıcılar
ActvityOptionsyerineactivityOptions.toBundledeğerini iletmelidir. #setLaunchingActivityStack(Activity)öğesini kaldırın. 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 tanımlayıcı olarak
ActivityStack.TokenveSpltInfo.Token'ı 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/sabitlerini kaldırma özelliği eklendi.- Demo uygulamasını, üstteki
ActivityStacköğesinin sabitlenmesine/sabitlenmesinin kaldırılmasına izin verecek şekilde güncelleme (I24dd3)
- Demo uygulamasını, üstteki
#finishActivityStacksveActivityEmbeddingOptions'ı yeniden ekleme (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üklenemiyor (I21355, b/324293374)
Hata Düzeltmeleri
- Sağlanan bağlamın doğru şekilde sarmalanmasının kaldırılamamasına neden olan 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 Window Size Class API'nin 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 API'lerin testi artık kararlı.- Sahte
ActivityEmbeddingdeğerleri ayarlamaya yönelik test API'leri artık kararlı. WindowLayoutInfoPublisherRuleartıkUiContextkaynağından değer alırken geçersiz kılma işlemini bildiriyor.WindowInfoTrackerraporları, katlama özelliği verileriniUiContextparametrelerine aktarır.- Cihazdaki uzantı sürümünü gösterin.
- Kullanıcı bazında 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 API'lerin testi artık kararlı.- Sahte
ActivityEmbeddingdeğerleri ayarlamaya yönelik test API'leri artık kararlı. WindowLayoutInfoPublisherRuleartıkUiContextkaynağından değer alırken geçersiz kılma işlemini bildiriyor.WindowInfoTrackerraporları, katlama özelliği verileriniUiContextparametrelerine aktarır.- 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 API'lerin testi artık kararlı.- Sahte
ActivityEmbeddingdeğerleri ayarlamaya yönelik test API'leri artık kararlı. WindowLayoutInfoPublisherRuleartıkUiContextkaynağından değer alırken geçersiz kılma işlemini bildiriyor.WindowInfoTrackerraporları, katlama özelliği verileriniUiContextparametrelerine aktarır.- 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 şekilde ç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 açıklama olarak ekleyin.
- 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 null yapılamaz hale getirir. (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 API'lerin testi artık kararlı.- Sahte
ActivityEmbeddingdeğerleri ayarlamaya yönelik test API'leri artık kararlı. WindowLayoutInfoPublisherRuleartıkUiContextkaynağından değer alırken geçersiz kılma işlemini bildiriyor.WindowInfoTrackerraporları, katlama özelliği verileriniUiContextparametrelerine aktarır.
API Değişiklikleri
- 1.3'te kararlı sürüm için API değişikliklerinin devam etmesine izin vermek üzere
WindowAreaAPI'lerini deneysel olarak işaretler (I857f5). - 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 mülk 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 ekranın kullanılmasını destekleyin. (Ifcbb0)
Hata Düzeltmeleri
- Yeniden boyutlandırmayı zorunlu kılmak için kapsam dışında kalma uyumluluk özelliği ekleme (Ie7ab1)
SESSION_STATE_CONTENT_INVISIBLEadlı uzantıyı, uzantılar arayüzünden kaldırı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 ekleyin.SplitInfoveActivityStackiçin kopya oluşturmak üzere test yöntemleri ekleyin. (Icd69f)ActivityRule.Builderiçin etiketi isteğe bağlı hale getirin. (Ib0b44)RatioSplitType,ExpandContainersSplitveHingeSplitTypeöğelerini 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)ActivityOptionsCompatdosyasınıActivityEmbeddingOptionsolarak 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'ı kullanıma sunuyoruz. 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()öğeleriniALWAYS_ALLOWveALWAYS_DISALLOWile değiştirin. (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 özelliklerinin belirtilmediği durumlarda sabit bir değer kullanmak için 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
WindowLayoutInfoPublishRuleuygulamasını,WindowLayoutInfotabanlıContextüzerinde geçersiz kılmaları destekleyecek şekilde 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
Etkinlik yerleştirme 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ıyan kararlı bir sürümdü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 vermek için
isSplitSupporteddesteği sonlandırıldı vesplitSupportStatusile değiştirildi. splitSupportStatusözelliği için durum sabitleri sağlamak üzereSplitController.SplitSupportStatusiç içe sınıfı eklendi.SplitController, birkaç modül olarak yeniden düzenlendi:ActivityEmbeddingControllermodülü içinActivityveyaActivityStackile ilgili API'ler.isActivityEmbedded,SplitControllerkonumundanActivityEmbeddingControllerkonumuna taşındı.EmbeddingRuleile ilgili işlemler içinRuleControllermodülü:- Kaldırılan
SplitControllerAPI'leri: clearRegisteredRules()getSplitRules()initialize()registerRule()unregisterRule()RuleControllerAPI'leri eklendi:addRule(): Bir kural ekler veya aynı etikete sahip kuralı günceller.removeRule(): Kayıtlı kurallar koleksiyonundan bir kuralı 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()API'lerinin cihazda desteklenip desteklenmediğini kontrol etmek içinSplitAttributesCalculator
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 piksel (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_ALLOWolanmaxAspectRatioInHorizontalözelliği eklendi. - Varsayılan değeri 1,4 olan
maxAspectRatioInPortraiteklendi. - Sonlandırma davranışı sabitlerini değiştirmek için
FinishBehavioriç içe sınıfı tanımlandı. SplitPairRuleveSplitPlaceholderRuleöğesinin Builder iç içe sınıfına özellik değişiklikleri uygulandı.
- Bölünmeyle 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 etkinlik yerleştirmeyi etkinleştirmek isteyen 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 - Cari 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.
SplitRulemülk 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 )veya yalnızcaminWithpiksel cinsindendisplayMetrics#densityile bölebilir.
- Sonlandırma 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ştirildisetLayoutDirection(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)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)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 temizlik.
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 vermek için
isSplitSupporteddesteği sonlandırıldı vesplitSupportStatusile değiştirildi. splitSupportStatusözelliği için durum sabitleri sağlamak üzereSplitController.SplitSupportStatusiç içe sınıfı eklendi.SplitController, birkaç modül olarak yeniden düzenlendi:ActivityEmbeddingControllermodülü içinActivityveyaActivityStackile ilgili API'ler.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(): Kayıtlı kurallar koleksiyonundan bir kuralı 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 piksel (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_ALLOWolanmaxAspectRatioInHorizontalözelliği eklendi. - Varsayılan değeri
1.4olanmaxAspectRatioInPortraitözelliği eklendi. - Sonlandırma davranışı sabitlerini değiştirmek için
FinishBehavioriç içe sınıfı tanımlandı. - Mülk değişikliklerini
SplitPairRuleveSplitPlaceholderRuleiç içe yerleştirilmişBuildersınıfına uyguladı.
- Bölünmeyle 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 etkinlik yerleştirmeyi etkinleştirmek isteyen 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 - Cari 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.
SplitRulemülk 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 )veya yalnızcaminWithpiksel cinsindendisplayMetrics#densityile bölebilir.
- Sonlandırma 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ştirildisetLayoutDirection(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)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)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 sunma.
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 kullanıma sunarakRearDisplaymodunun etkinleştirilmesini ve mevcut pencerenin arka kamerayla aynı hizadaki ekrana taşınmasını sağlar. (Iffcbf)- Varsayılan arka plan rengini güncelleyin. (I1ac1b)
SplitAttributesparametrelerini ekleyin. (I18bdd)SplitRule,SplitAttributes,SplitAttributesCalculatoriçin API'ler ekleyin. (I92d23)maxAspectRatioile ilgili API'leri iyileştirme:alwaysAllow()vealwaysDisallow()öğeleriniALWAYS_ALLOWveALWAYS_DISALLOWile değiştirin.- @see ile 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ırlardaki 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ştirin.- ActivityEmbedding ile ilgili API'leri iyileştirme
- API adlandırmasını hizalama - Birden fazla örnek için ekleme/kaldırma işlemlerini kullanın:
registerRule,addRuleolarak değiştirildiunregisterRule,removeRuleolarak değiştirildiActivityRulebir bölme kuralı olmadığındangetSplitRulesyerinegetRuleskoyun- Bir dizi kural ayarlamak için
RuleController#setRulesekleyin - Kural çıkarma ile ilgili API'leri
SplitControlleröğesinden tek öğeliRuleControlleröğesine taşıyın. Bunlar: addRuleremoveRulegetRulessetRulesclearRulesparseRules#isActivityEmbeddeddosyasınıSplitControllerkonumundan tek öğeliActivityEmbeddingControllerkonumuna çıkarın. Bunlar:isActivityEmbeddedSplitController#initializeöğesini kaldırın. 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,
#clearRulessonuçlarını çağırmak, statik XML kural tanımlarıyla veya çalışma zamanında kaydedilmiş olmalarından bağımsız olarak tüm kuralları temizler.SplitController#clearRegisteredRulesiçin eski davranışı kullanmak istiyorsanız 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'lerini iyileştirme:
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çin birActivityStacköğesinin boş olup olmadığını belirlemeye yarayan bir yöntem sunun.ActivityEmbeddingAPI'lerinden deneysel API etiketleri kaldırıldı.ActivityRuleoluşturucuyu gizleyin. ÇünküBuilder, oluşturma için tercih edilen yöntemdir.WindowInsetsüzerindeWindowMetricselde etmek için deneysel bir yöntem ekleyin.- Yer tutucunun tamamlanmasını önlemek için
SplitPlaceholderFinishBehaviorgüncelleyin. Yer tutucuyu tamamlama işlemi, kafa karıştırıcı davranışlara neden oluyordu.
API Değişiklikleri
- Eğlenceli
isEmptyişlevini değiştirmek için valisEmptyişlevini herkese açık yapın. ActivityStackparametre etkinlikleriniactivitiesInProcessolarak yeniden adlandırın. (Ia5055)ActivityFilter#matchesClassNameveActivityFilter#matchesClassNameOrWildCard, kafa karıştırıcı olduğu için kaldırılmalı.- Arayanın farklı filtreleri ayırt edebilmesi için
ActivityFilter#componentNameabdActivityFilter#intentActionifadesini ekleyin (I41f22). - Deneysel API'den (I216b3)
@DeprecatedAPI'lerini kaldırın. - 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)ActivityEmbeddingmülk 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 kullanıma sunarakRearDisplaymodunun etkinleştirilmesini ve mevcut pencerenin arka kamerayla aynı hizadaki ekrana taşınmasını sağlar. (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 ekleyin (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.WindowMetricsCalculator, mevcut WindowMetrics'i hesaplamaya yardımcı olur.
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. Version 1.0.0-beta03 contains these commits.
Yeni Özellikler
- Deneysel Activity Embedding 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'si kaldırıldı. 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 ek 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 S platform 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. Version 1.0.0-alpha10 contains these commits.
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'deki bir akış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ıflandı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ırma (I24663)
- WindowManager'ı kaldırıp WindowInfoRepo'yu kullanma
- 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ılmasına neden olan 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. Version 1.0.0-alpha09 contains these commits.
Yeni Özellikler
- Tam sayı sabitlerinden sınırsız numaralandırılmış türlere geçiş yapıldı.
- 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. Version 1.0.0-alpha08 ş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ğırmaları 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 eş yordama dayalı 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, herkese açık 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öğesini FoldingFeature'dan kaldırın. (I9c4e1)- Desteği sonlandırılan kayıt yöntemlerini kaldırın. (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. Böylece
WindowManager'dan senkron okuma yöntemlerini kaldırıyoruz. Eşzamanlı okuma yöntemleri, örtülü bir yarışma durumu olduğundan hataya açıktır. WindowLayoutInfo ile ilgili güncellemeleri almak için dinleyicileri ve geri çağırmaları kaydedin.
API Değişiklikleri
- FoldingFeatures ile çalışmak için kolaylık yöntemleri ekleyin (Ie733f).
- WindowManager'dan eşzamanlı okuma yöntemlerini kaldırır (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 durum 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. Eşzamanlı okuma işlemleri yarış koşullarına yol açabilir ve kullanıcı arayüzü yanlış 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 üzere 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 kullanıma sunar. (I3ccee)
- WindowManager'dan senkronize okuma yöntemlerini kaldırma (I69983)
- ExtensionWindowBackend paketini korumalı hale getirin. (Ied208)
Hata Düzeltmeleri
ExtensionInterfaceAPI'lerini görsel bağlamları kabul edecek şekilde 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, Pencere Yöneticisi 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.