Önceki sürümlerde olduğu gibi Android 16 da uygulamanızı etkileyebilecek davranış değişiklikleri içeriyor. Aşağıdaki davranış değişiklikleri yalnızca Android 16 veya sonraki sürümleri hedefleyen uygulamalar için geçerlidir. Uygulamanız Android 16 veya sonraki sürümleri hedefliyorsa geçerli olduğu durumlarda uygulamanızı bu davranışları destekleyecek şekilde değiştirmeniz gerekir.
Uygulamanızın targetSdkVersion
sürümünden bağımsız olarak Android 16'da çalışan tüm uygulamaları etkileyen davranış değişiklikleri listesini de incelemeyi unutmayın.
Kullanıcı deneyimi ve sistem kullanıcı arayüzü
Android 16, daha tutarlı ve sezgisel bir kullanıcı deneyimi sunmak için tasarlanmış aşağıdaki değişiklikleri içerir.
Tahmini geri arama için taşıma veya devre dışı bırakma işlemi gereklidir
Android 16 veya sonraki sürümleri hedefleyen ve Android 16 veya sonraki sürümleri çalıştıran cihazlarda, tahmine dayalı geri sistem animasyonları (ana sayfaya geri, görevler arası ve etkinlikler arası) varsayılan olarak etkindir.
Ayrıca onBackPressed
çağrılmaz ve KeyEvent.KEYCODE_BACK
artık gönderilmez.
Uygulamanız geri etkinliğini durduruyorsa ve henüz tahmini geri özelliğine geçmediyseniz uygulamanızı, desteklenen geri gezinme API'lerini kullanacak şekilde güncelleyin veya uygulamanızın AndroidManifest.xml
dosyasının <application>
veya <activity>
etiketinde android:enableOnBackInvokedCallback
özelliğini false
olarak ayarlayarak geçici olarak devre dışı bırakın.
Temel işlevler
Android 16, Android sisteminin çeşitli temel özelliklerini değiştiren veya genişleten aşağıdaki değişiklikleri içerir.
Sabit ücretli iş planlama optimizasyonu
Android 16'yı hedeflemeden önce, scheduleAtFixedRate
geçerli bir işlem yaşam döngüsü dışında olduğu için bir görev yürütmeyi kaçırdığında, uygulama geçerli bir yaşam döngüsüne döndüğünde tüm kaçırılan yürütmeler hemen yürütülür.
Android 16'yı hedeflerken, uygulama geçerli bir yaşam döngüsüne döndüğünde en fazla bir scheduleAtFixedRate
yürütme işleminin eksikliği hemen yürütülür. Bu davranış değişikliğinin uygulama performansını iyileştirmesi bekleniyor. Uygulamanızın etkilenip etkilenmediğini kontrol etmek için uygulamanızda bu davranışı test edin.
Uygulama uyumluluk çerçevesini kullanarak ve STPE_SKIP_MULTIPLE_MISSED_PERIODIC_TASKS
uyumluluk işaretini etkinleştirerek de test yapabilirsiniz.
Büyük ekranlar ve form faktörleri
Android 16, büyük ekranlı cihazlarda gösterilen uygulamalar için aşağıdaki değişiklikleri içerir.
Uyarlanabilir düzenler
Android uygulamaları artık çeşitli cihazlarda (ör. telefonlar, tabletler, katlanabilir cihazlar ve masaüstü bilgisayarlar) ve büyük ekranlarda pencere modlarında (ör. bölünmüş ekran ve masaüstü pencere modu) çalıştığından, geliştiriciler cihaz yöneliminden bağımsız olarak herhangi bir ekran ve pencere boyutuna uyum sağlayan Android uygulamaları oluşturmalıdır. Yönlendirmeyi ve yeniden boyutlandırmayı kısıtlama gibi paradigmalar, günümüzün çok cihazlı dünyasında çok kısıtlayıcı.
Yönlendirme, yeniden boyutlandırılabilirlik ve en boy oranı kısıtlamalarını yoksayma
Android 16'ı hedefleyen uygulamalar için Android 16, sistemin yön, yeniden boyutlandırılabilirlik ve en boy oranı kısıtlamalarını yönetme şekliyle ilgili değişiklikler içerir. En küçük genişliği >= 600 dp olan ekranlarda kısıtlamalar artık geçerli değildir. Ayrıca, uygulamalar en boy oranına veya kullanıcının tercih ettiği yönde bakılmaksızın ekran penceresinin tamamını doldurur ve dikey kenarlık kullanılmaz.
Bu değişiklik, yeni bir standart platform davranışı sunar. Android, uygulamaların çeşitli yönlere, ekran boyutlarına ve en boy oranlarına uyum sağlaması beklenen bir modele doğru ilerliyor. Sabit yön veya sınırlı yeniden boyutlandırma gibi kısıtlamalar, uygulamanın uyarlanabilirliğini engeller. Bu nedenle, mümkün olan en iyi kullanıcı deneyimini sunmak için uygulamanızı uyarlanabilir hale getirmenizi öneririz.
Sık karşılaşılan zarar veren değişiklikler
Yön, yeniden boyutlandırılabilirlik ve en boy oranı kısıtlamaları göz ardı edildiğinde, uygulamanızın bazı cihazlardaki kullanıcı arayüzü (özellikle de dikey yönde kilitli küçük düzenler için tasarlanmış öğeler) etkilenebilir. Örneğin, gerilmiş düzenler, ekran dışı animasyonlar ve bileşenler gibi sorunlarla karşılaşabilirsiniz. En boy oranı veya yönle ilgili varsayımların hepsi uygulamanızda görsel sorunlara neden olabilir. Bu sorunların nasıl önleneceği ve uygulamanızın uyarlanabilir davranışının nasıl iyileştirileceği hakkında daha fazla bilgi edinin.
Cihaz rotasyonuna izin vermek, daha fazla etkinliğin yeniden oluşturulmasına neden olur. Bu da, düzgün şekilde korunmazsa kullanıcı durumunun kaybedilmesine yol açabilir. Kullanıcı arayüzü durumlarını kaydetme başlıklı makalede, kullanıcı arayüzü durumunu nasıl doğru şekilde kaydedeceğinizi öğrenin.
Uygulama ayrıntıları
Aşağıdaki manifest özellikleri ve çalışma zamanı API'leri, tam ekran ve çok pencereli modlarda büyük ekranlı cihazlarda yoksayılır:
screenOrientation
resizableActivity
minAspectRatio
maxAspectRatio
setRequestedOrientation()
getRequestedOrientation()
screenOrientation
, setRequestedOrientation()
ve getRequestedOrientation()
için aşağıdaki değerler yoksayılır:
portrait
reversePortrait
sensorPortrait
userPortrait
landscape
reverseLandscape
sensorLandscape
userLandscape
Görüntü yeniden boyutlandırılabilirliği açısından android:resizeableActivity="false"
,
android:minAspectRatio
ve android:maxAspectRatio
'nin hiçbir etkisi yoktur.
Android 16'yı hedefleyen uygulamalarda uygulama yönü, yeniden kullanılabilirlik ve en boy oranı kısıtlamaları varsayılan olarak büyük ekranlarda yoksayılır. Ancak tam olarak hazır olmayan her uygulama, bu özelliği devre dışı bırakarak bu davranışı geçici olarak geçersiz kılabilir (bu da uygulamanın uyumluluk moduna yerleştirildiği önceki davranışa neden olur).
İstisnalar
Android 16 yön, yeniden boyutlandırılabilirlik ve en boy oranı kısıtlamaları aşağıdaki durumlarda geçerli değildir:
- Oyunlar (
android:appCategory
işaretine göre) - Kullanıcıların, cihazın en boy oranı ayarlarında uygulamanın varsayılan davranışını açıkça etkinleştirmesi
sw600dp
'ten küçük ekranlar
Özelliği geçici olarak devre dışı bırakma
Belirli bir etkinliği kapsam dışında bırakmak için PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY
manifest mülkünü tanımlayın:
<activity ...>
<property android:name="android.window.PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY" android:value="true" />
...
</activity>
Uygulamanızın çok fazla bölümü Android 16 için hazır değilse aynı özelliği uygulama düzeyinde uygulayarak özelliği tamamen devre dışı bırakabilirsiniz:
<application ...>
<property android:name="android.window.PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY" android:value="true" />
</application>
Sağlık ve fitness
Android 16, sağlık ve fitness verileriyle ilgili aşağıdaki değişiklikleri içerir.
Sağlık ve fitness izinleri
Android 16 veya sonraki sürümleri hedefleyen uygulamalarda BODY_SENSORS
izinleri, Health Connect tarafından da kullanılan android.permissions.health
kapsamındaki ayrıntılı izinlere geçiriliyor. Daha önce BODY_SENSORS
veya BODY_SENSORS_BACKGROUND
gerektiren tüm API'ler artık ilgili android.permissions.health
iznini gerektiriyor. Bu durum aşağıdaki veri türlerini, API'leri ve ön plan hizmeti türlerini etkiler:
- Wear Health Services'den
HEART_RATE_BPM
- Android Sensör Yöneticisi'nden
Sensor.TYPE_HEART_RATE
- Wear
ProtoLayout
'danheartRateAccuracy
veheartRateBpm
BODY_SENSORS
yerine ilgiliandroid.permission.health
izninin gerekli olduğuFOREGROUND_SERVICE_TYPE_HEALTH
Uygulamanız bu API'leri kullanıyorsa artık ilgili ayrıntılı izinleri istemelidir:
- Kalp atış hızı, SpO2 veya cilt sıcaklığının kullanım sırasında izlenmesi için:
android.permissions.health
altında ayrıntılı izin isteyin (ör.BODY_SENSORS
yerineREAD_HEART_RATE
). - Arka planda sensör erişimi için:
BODY_SENSORS_BACKGROUND
yerineREAD_HEALTH_DATA_IN_BACKGROUND
isteğinde bulunun.
Bu izinler, sağlık, fitness ve sağlıklı yaşam verileri için Android veri deposu olan Health Connect'ten veri okuma erişimini koruyan izinlerle aynıdır.