Android uygulamaları her tür cihazda (telefonlar, tabletler, katlanabilir cihazlar, ChromeOS cihazlar, arabalar, TV'ler ve hatta XR) ç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ılmalar, en küçük genişliği >= 600 dp olan cihazlar için geçerlidir. Bu, aşağıdakileri tanımlar:
- Tabletler
- Büyük ekranlı katlanabilir cihazların iç ekranları
- Pencereli görüntüleme (tüm form faktörlerinde)
Hedef API düzeyi 36 olan uygulamalar, ekranın en küçük genişliği >= 600 dp ise yeniden boyutlandırılabilir ve çok pencereli moda (resizeableActivity="true"'ye eşdeğer) girebilir.
Android 16, cihaz yönü, en boy oranı ve ekran boyutuyla ilgili kullanıcı tercihlerine saygı duyarak 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 uygulamalar için 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 cihaz ve büyük ekranlı katlanabilir cihazların dış ekranları)
android:appCategoryişaretine dayalı oyunlarOyununuzu Android App Bundle ve Play Uygulama İmzalama'yı kullanarak yayınlayın. Böylece Google Play, otomatik olarak bayrağı yönetebilir ve uygulama paketlerinin avantajlarını sunabilir. Ayrıca Uygulama manifestine genel bakış başlıklı makaleye de göz atın.
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'da Pixel Tablet ve Pixel Fold serisi emülatörleri kullanın ve uygulamanızın modül targetSdkPreview = "Baklava" dosyasında build.gradle değerini ayarlayın.
Alternatif olarak, UNIVERSAL_RESIZABLE_BY_DEFAULT işaretini etkinleştirerek test cihazlarınızda uygulama uyumluluğu ç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 test etme işlemini otomatikleştirebilirsiniz.
Uygulama kılavuzu
Cihaz yönünü, en boy oranını veya uygulamanın yeniden boyutlandırılmasını kısıtlayan uygulamalar, Android 16'da çakışan düzenler gibi görüntüleme sorunlarına neden olabilir. Telefonlarda, katlanabilir cihazlarda, tabletlerde, ChromeOS cihazlarda ve daha pek çok cihazda optimum kullanıcı deneyimi sunmak için uygulamanızı duyarlı ve uyarlanabilir olacak şekilde geliştirin.
Hazırlık durumu kontrol listesi
Uygulamanızın Android 16 değişikliklerine hazır olduğundan emin olmak için aşağıdaki kontrol listesini kullanın:
- Genişletilmiş kullanıcı arayüzü bileşenlerinden kaçının: Standart, dikey telefon ekranları için tasarlanan düzenler diğer en-boy oranlarını karşılayamayabilir. Örneğin, ekranın tüm genişliğini kaplayan kullanıcı arayüzü öğeleri yatay yönde gerilmiş olarak görünebilir. Genişlemeyi önlemek için bileşenlere maksimum genişlik ekleyin.
- Düzenlerin kaydırılmasına izin ver: Düzenler kaydırılmıyorsa kullanıcılar, yatay yönde ekran 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şilebildiğini doğrulamak için uygulamaların kaydırılabilir düzenlerini etkinleştirin.
- Portre ve yatay modda kamera uyumluluğunu doğrulama: Kamera vizörünün, kamera sensörüne göre belirli bir en boy oranı ve yönlendirme varsayan önizlemeleri, uygun olmayan ekranlarda gerilmiş veya ters çevrilmiş önizlemelere neden olabilir. Vizörlerin, yön değişiklikleriyle birlikte düzgün şekilde döndüğünü doğrulayın. Vizörlerin, sensör en-boy oranından farklı olan kullanıcı arayüzü en-boy oranlarına göre ayarlanmasını sağlar.
- Pencere boyutu değişiklikleri sırasında durumu koruma: Yön ve en-boy oranı kısıtlamalarının kaldırılması, kullanıcıların uygulamayı kullanma tercihine bağlı olarak (ör. cihazı döndürerek, katlayarak veya açarak ya da çoklu pencere veya masaüstü pencere modunda uygulamayı yeniden boyutlandırarak) uygulama penceresi boyutunun sık sık değişmesine neden olabilir. Yön değişiklikleri ve pencere boyutu değiştirme gibi yapılandırma değişiklikleri, etkinliğin yeniden oluşturulmasına (varsayılan olarak) neden olur. En iyi kullanıcı deneyimini sunmak için uygulamanızın verileri (ör. form girişi) korumasını ve kullanıcıların bağlamı koruyabilmesini sağlamak amacıyla uygulama durumunu koruyun.
- Pencere boyutu sınıflarını kullanma: 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 boyutlarını karakterize etmek için pencere boyutu sınıflarını kullanın ve ardından uygun bir uyarlanabilir düzen uygulayın.
- Duyarlı düzenler oluşturun: Pencere boyutu sınıflarında duyarlı düzenler, ekran boyutlarındaki değişikliklere uyum sağlayarak her zaman optimum bir uygulama sunumu oluşturur.
Compose'da uyarlanabilir düzenler oluşturmayla ilgili uygulamalı kılavuz için Build adaptive apps with Jetpack Compose (Jetpack Compose ile uyarlanabilir uygulamalar oluşturma) başlıklı codelab'i inceleyin. Görüntüleme kullanan bir uygulamayı taşıyorsanız Compose'u benimseme stratejisi oluşturma başlıklı makaleyi inceleyin.
Zaman Çizelgesi
- Android 16 (2025): API düzeyi 36'yı hedefleyen uygulamalarda, tüm yönler, en-boy oranları ve uygulamanın yeniden boyutlandırılması için destek, 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.
| Hedef API düzeyi | Geçerli cihazlar | Geliştirici devre dışı bırakma işlemine izin verilir |
|---|---|---|
| 36 (Android 16) | Büyük ekranlı cihazlar (en küçük ekran genişliği >= 600 dp) | Evet |
Belirli API düzeylerini hedefleme son tarihleri uygulama mağazasına özeldir. Google Play, Ağustos 2026'dan itibaren uygulamaların API düzeyi 36'yı hedeflemesini zorunlu kılacak.
Ek kaynaklar
- Davranış değişiklikleri: Android 16 veya sonraki sürümleri hedefleyen uygulamalar
- Uyarlanabilir uygulamalar geliştirme
- Uyarlanabilir reklamlarla ilgili yapılması ve yapılmaması gerekenler