Uygulama yönü, en boy oranı ve yeniden boyutlandırılabilirlik

Android uygulamaları telefonlar, tabletler, katlanabilir cihazlar, Chromebook'lar, arabalar, televizyonlar ve hatta XR gibi her türlü cihazda çalışır. Bu çeşitli ortama uyum sağlamak için uygulamanız tüm cihaz form faktörlerini ve ekran boyutlarını desteklemelidir.

Android 16 (API düzeyi 36), ekran yönü, en boy oranı ve yeniden boyutlandırılabilirlik ile ilgili uygulama kısıtlamalarını geçersiz kılarak uygulamaların farklı form faktörlerine ve ekran boyutlarına uyum sağlamasına olanak tanır. Geçersiz kılma işlemleri, en küçük genişliği 600 dp'den büyük olan cihazlar için geçerlidir ve aşağıdakileri tanımlar:

  • Tabletler
  • Büyük ekran katlanabilir cihazların iç ekranları
  • Pencereli görüntüleme (tüm form faktörlerinde)

API düzeyi 36'yı hedefleyen uygulamalar, yeniden boyutlandırılabilir ve ekranın en küçük genişliği >= 600 dp ise çoklu pencere moduna (resizeableActivity="true" ile eşdeğer) girebilir.

Uygulama, Android 16'dan önceki sürümleri çalıştıran katlanmış büyük ekranlı cihazlarda sinemaskoplu olarak gösterilir ancak Android 16'yı hedeflediğinde tam ekran olarak gösterilir. Uygulama, sinemaskop yerine tam ekran olduğunda daha fazla haber öğesi gösterir.
Şekil 1. Daha önce büyük ekranlı cihazlarda sinemaskop olarak gösterilen Geliştirici Haberleri feed'i (solda), Android 16'yı hedeflediğinde tam ekranda gösterilir (sağda).

Android 16, cihaz yönü, en boy oranı ve ekran boyutu ile ilgili kullanıcı tercihlerine uyarak kullanıcı deneyimini optimize eden tutarlı bir uyarlanabilir uygulama tasarımı modeli uygular.

Değişiklikler

Büyük ekranlarda Android 16'yı (API düzeyi 36) hedefleyen uygulamalarda aşağıdaki manifest özellikleri ve API'ler yoksayılır:

Özellik veya API Yoksayılan değerler
screenOrientation portrait, landscape, reversePortrait, reverseLandscape, sensorPortrait, sensorLandscape, userPortrait, userLandscape
resizeableActivity tümü
minAspectRatio tümü
maxAspectRatio tümü
setRequestedOrientation()

getRequestedOrientation()
portrait, landscape, reversePortrait, reverseLandscape, sensorPortrait, sensorLandscape, userPortrait, userLandscape

İstisnalar

Android 16'daki değişikliklerle ilgili istisnalar şunlardır:

  • sw600dp'den küçük ekranlar (çoğu telefon, katlanabilir telefon ve büyük ekranlı katlanabilir cihazların dış ekranları)

  • android:appCategory işaretine göre oyunlar

    Oyununuzu Android App Bundle ve Play Uygulama İmzalama'yı kullanarak yayınlayın. Böylece Google Play, işareti yönetebilir ve uygulama paketlerinin avantajlarını otomatik olarak sağlayabilir. Ayrıca Uygulama manifestine genel bakış başlıklı makaleyi inceleyin.

  • Kullanıcı, en boy oranı ayarlarında uygulamanın varsayılan davranışını etkinleştirir.

Devre dışı bırak

API düzey 36 davranışını devre dışı bırakmak için PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY manifest mülkünü tanımlayın.

Belirli bir etkinliği devre dışı bırakmak için <activity> öğesinde özelliği ayarlayın:

<activity ...>
    <property
        android:name="android.window.PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY"
        android:value="true" />
    ...
</activity>

Uygulamanızın tamamı için kapsam dışında kalmayı tercih etmek istiyorsanız <application> öğesinde mülkü ayarlayın:

<application ...>
    <property
        android:name="android.window.PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY"
        android:value="true" />
    ...
</application>

Testler

Uygulamanızın Android 16 değişikliklerinden etkilenip etkilenmediğini test etmek için Android Studio'daki Pixel Tablet ve Pixel Fold serisi emülatörlerini kullanın ve uygulamanızın build.gradle modülü dosyasında targetSdkPreview = "Baklava" değerini ayarlayın.

Alternatif olarak, UNIVERSAL_RESIZABLE_BY_DEFAULT işaretini etkinleştirerek test cihazlarınızda uygulama uyumluluk çerçevesini kullanabilirsiniz (Uyumluluk çerçevesi araçları bölümüne bakın).

Espresso test çerçevesi ve Jetpack Compose test API'leri ile testleri otomatikleştirebilirsiniz.

Sık karşılaşılan sorunlar

Cihaz yönünü, en boy oranını veya uygulamanın yeniden boyutlandırılabilirliğini kısıtlayan uygulamalar, Android 16'da örtüşen düzenler gibi görüntüleme sorunlarıyla karşılaşabilir.

Telefonlar, katlanabilir cihazlar, tabletler, Chromebook'lar, araç ekranları veya XR'de optimum bir kullanıcı deneyimi sunmak için uygulamanızı duyarlı ve uyarlanabilir olacak şekilde oluşturun:

  • Uzatılan kullanıcı arayüzü bileşenlerinden kaçının: Standart, dikey telefon ekranları için tasarlanan düzenler büyük olasılıkla diğer en boy oranlarını barındıramaz. Örneğin, ekranın tüm genişliğini dolduran kullanıcı arayüzü öğeleri yatay yönde uzatılmış olarak görünür. Uzamasını önlemek için bileşenlere maksimum genişlik ekleyin.

  • Düzenlerin kaydırılmasını etkinleştirin: Düzenler kaydırma özelliğine sahip değilse kullanıcılar yatay modda ekranın dışında kalan düğmelere veya diğer kullanıcı arayüzü öğelerine erişemeyebilir. Ekranın yüksekliğinden bağımsız olarak tüm içeriğe erişilebilmesi için uygulama düzenlerinin kaydırılmasını etkinleştirin.

  • Portre ve yatay modlarda kamera uyumluluğunu sağlayın: Kamera sensörüne göre belirli bir en boy oranını ve yönünü varsayan kamera vizörü önizlemeleri, uyumlu olmayan ekranlarda önizlemelerin uzatılmasına veya ters çevrilmesine neden olabilir. Vizörlerin, yön değişikliklerine göre düzgün şekilde döndüğünden emin olun. Vizörlerin, sensör en boy oranından farklı kullanıcı arayüzü en boy oranlarına ayarlanmasını sağlayın.

  • Pencere boyutu değişiklikleri sırasında durumu koruma: Yönlendirme ve en boy oranı kısıtlamalarının kaldırılması, kullanıcıların bir uygulamayı kullanma tercihine göre sık sık uygulama penceresi boyutu değişikliklerine neden olabilir. Örneğin, kullanıcılar bir cihazı döndürerek, katlayarak veya açarak ya da uygulamayı çoklu pencere veya masaüstü pencere modunda yeniden boyutlandırarak uygulamayı tercih ettikleri şekilde kullanabilirler. Yön değişiklikleri ve pencere boyutunu değiştirme gibi yapılandırma değişiklikleri, varsayılan olarak etkinliğin yeniden oluşturulmasına neden olur. Optimum bir kullanıcı deneyimi sağlamak için yapılandırma değişiklikleri sırasında uygulama durumunu koruyun. Böylece uygulamanız verileri (ör. form girişi) korur ve kullanıcılar bağlamı koruyabilir.

  • Pencere boyutu sınıflarını kullanın: Cihaza özel özelleştirmeler olmadan farklı pencere boyutlarını ve en boy oranlarını destekleyin. Pencere boyutlarının sık sık değişeceğini varsayın. Pencere boyutu sınıflarını kullanarak pencere boyutlarını karakterize edin ve ardından uygun bir uyarlanabilir düzen uygulayın.

  • Duyarlı düzenler oluşturun: Pencere boyutu sınıflarında duyarlı düzenler, her zaman optimum bir uygulama sunumu oluşturmak için ekran boyutlarındaki değişikliklere uyum sağlar.

Zaman Çizelgesi

  • Android 16 (2025): Tüm yönler, en boy oranları ve uygulama yeniden boyutlandırma desteği, API düzeyi 36'yı hedefleyen uygulamalar için büyük ekranlı cihazlarda (en küçük ekran genişliği >= 600 dp) temel deneyimdir. Ancak geliştiriciler bu özelliği devre dışı bırakabilir.

  • 2026'da kullanıma sunulacak Android sürümü: Tüm yönler, en boy oranları ve uygulama boyutlandırması için destek, API düzeyi 37'yi hedefleyen uygulamalarda büyük ekranlı cihazlar (en küçük ekran genişliği >= 600 dp) için temel deneyim olacaktır. Geliştiriciler bu özelliği devre dışı bırakma seçeneğinden yararlanamaz.

Hedef API düzeyi Geçerli cihazlar Geliştiricinin kapsam dışında kalmasına izin verildi
36 (Android 16) Büyük ekranlı cihazlar (en küçük ekran genişliği >= 600 dp) Evet
37 (Beklenen) Büyük ekranlı cihazlar (en küçük ekran genişliği >= 600 dp) Hayır

Belirli API düzeylerini hedefleme için son tarihler uygulama mağazasına özeldir. Google Play, Ağustos 2026'dan itibaren API düzeyi 36'yı, Ağustos 2027'den itibaren ise API düzeyi 37'yi hedefleyen uygulamalara izin verecektir.

Ek kaynaklar