Android 15 platformunda, uygulamanızı etkileyebilecek davranış değişiklikleri vardır. Aşağıdaki davranış değişiklikleri, targetSdkVersion
'ten bağımsız olarak Android 15'te çalıştırılan tüm uygulamalar için geçerlidir. Uygulamanızı test etmeniz ve ardından geçerli olduğu durumlarda bunları düzgün şekilde desteklemek için gerektiği gibi değiştirmeniz gerekir.
Yalnızca Android 15'i hedefleyen uygulamaları etkileyen davranış değişiklikleri listesini de inceleyin.
Temel işlevler
Android 15, Android sisteminin çeşitli temel özelliklerini değiştirir veya genişletir.
Paketin durdurulmuş durumundaki değişiklikler
The intention of the package FLAG_STOPPED
state (which users
can engage in AOSP builds by long-pressing an app icon and selecting "Force
Stop") has always been to keep apps in this state until the user explicitly
removes the app from this state by directly launching the app or indirectly
interacting with the app (through the sharesheet or a widget, selecting the app
as live wallpaper, etc.). In Android 15, we've updated the behavior of the
system to be aligned with this intended behavior. Apps should only be removed
from the stopped state through direct or indirect user action.
To support the intended behavior, in addition to the existing restrictions, the
system also cancels all pending intents when the app enters the
stopped state on a device running Android 15. When the user's actions remove the
app from the stopped state, the ACTION_BOOT_COMPLETED
broadcast is delivered to the app providing an opportunity to re-register any
pending intents.
You can call the new
ApplicationStartInfo.wasForceStopped()
method to confirm whether the app was put into the stopped state.
16 KB sayfa boyutları için destek
Önceden Android yalnızca 4 KB bellekli sayfa boyutlarını destekliyordu. toplam bellek miktarının ortalaması için optimize edilmiş sistem bellek performansı Android cihazlar genellikle AOSP, Android 15'ten itibaren 16 KB (16 KB) sayfa boyutunu kullanacak şekilde yapılandırılmış cihazlar cihazlar). Uygulamanız doğrudan NDK kitaplıkları kullanıyorsa veya dolaylı olarak bir SDK üzerinden alırsa, bunun için uygulamanızı bu 16 KB'lık cihazlarda çalışır.
Cihaz üreticileri, her gün daha fazla cihaz için (RAM) yüklü olduğu varsayıldığında, bu cihazların çoğu 16 KB (ve cihaz performansını optimize etmek için kullanılan sayfa boyutları arasında büyük fark vardır. Ekleme 16 KB sayfa boyutundaki cihazlar için destek, uygulamanızın bu ve uygulamanızın ilişkili performanstan yararlanmasına yardımcı olur tek yolu değildir. Yeniden derleme işlemi yapılmadığında uygulamalar 16 KB cihazlarda çalışmayabilir. kullanıma sunduk.
Uygulamanız için destek eklemenize yardımcı olmak üzere Uygulamanız etkilendiyse uygulamanızı yeniden derleyin (geçerliyse) ve uygulamanızı şurada test edin: emülatörler kullanan 16 KB ortam (Android 15 dahil) için sistem görüntüleri) ekleyebilirsiniz.
Avantajlar ve performans kazanımları
Devices configured with 16 KB page sizes use slightly more memory on average, but also gain various performance improvements for both the system and apps:
- Lower app launch times while the system is under memory pressure: 3.16% lower on average, with more significant improvements (up to 30%) for some apps that we tested
- Reduced power draw during app launch: 4.56% reduction on average
- Faster camera launch: 4.48% faster hot starts on average, and 6.60% faster cold starts on average
- Improved system boot time: improved by 8% (approximately 950 milliseconds) on average
These improvements are based on our initial testing, and results on actual devices will likely differ. We'll provide additional analysis of potential gains for apps as we continue our testing.
Uygulamanızın etkilenip etkilenmediğini kontrol edin
If your app uses any native code, then you should rebuild your app with support for 16 KB devices. If you are unsure if your app uses native code, you can use the APK Analyzer to identify whether any native code is present and then check the alignment of ELF segments for any shared libraries that you find.
If your app only uses code written in the Java programming language or in Kotlin, including all libraries or SDKs, then your app already supports 16 KB devices. Nevertheless, we recommend that you test your app in a 16 KB environment to verify that there are no unexpected regressions in app behavior.
Bazı uygulamaların özel alanı desteklemesi için gereken değişiklikler
Özel alan, Android 15'teki yeni bir özelliktir. Kullanıcıların cihazlarında ayrı bir alan oluşturarak hassas uygulamaları, ek bir kimlik doğrulama katmanıyla meraklı gözlerden korumalarına olanak tanır. Özel alandaki uygulamaların görünürlüğü kısıtlandığından, bazı uygulama türlerinin kullanıcının özel alanındaki uygulamaları görüp bunlarla etkileşim kurabilmesi için ek adımlar atması gerekir.
Tüm uygulamalar
Özel alandaki uygulamalar ayrı bir kullanıcı profilinde saklandığından, iş profili olarak değiştirmek isterseniz uygulamalar, uygulamasının ana profilde olmayan kopyaları da iş profilinde yer alır. Uygulamanızda, iş profili uygulamalarıyla ilgili bu varsayımı yapan bir mantık varsa bu mantığı düzenlemeniz gerekir.
Tıbbi uygulamalar
Kullanıcı özel alanı kilitlediğinde, özel alandaki tüm uygulamalar durdurulur, Ayrıca, bu uygulamalar da dahil olmak üzere ön plan veya arka plan bildirimler gösteriliyor. Bu davranış, Google Ads verilerinin kullanımını özel alanda yüklü tıbbi uygulamaların işlevi.
Özel alan kurulum deneyiminde, kullanıcıları özel alanın Kritik ön plan veya arka plan çalışması gereken uygulamalar için uygundur etkinlikler (ör. tıbbi uygulamalardan gelen bildirimleri göstermek). Ancak, uygulamalar, kullanımlarının özel alanda olup olmadığını belirleyemediği gibi, bu nedenle kullanıcıya bu konuda bir uyarı gösteremez.
Bu nedenle, tıbbi uygulama geliştiriyorsanız bu özelliğin ve uygun işlemleri (ör. kullanıcılarınızı bunları yapmamaları gerektiği konusunda bilgilendirmek) uygulamanızı özel alana yükleyin. Böylece, kritik öneme sahip uygulamaların çalışmasını kesintiye uğratmayın. özellikler.
Başlatıcı uygulamaları
Başlatıcı uygulaması geliştirirseniz özel alan şuralarda görünür olacaktır:
- Uygulamanız, cihaz için varsayılan başlatıcı uygulaması olarak atanmış olmalıdır. Yani
ROLE_HOME
rolüne sahip olmalıdır. - Uygulamanız
ACCESS_HIDDEN_PROFILES
şartlarını beyan etmelidir uygulamanızın manifest dosyasında normal izne sahip olmanız gerekir.
ACCESS_HIDDEN_PROFILES
iznini beyan eden başlatıcı uygulamaları şunları işlemelidir:
Aşağıdaki özel alan kullanım alanları:
- Uygulamanızda, özel alana yüklenen uygulamalar için ayrı bir başlatıcı kapsayıcısı olmalıdır.
getLauncherUserInfo()
yöntemini kullanarak hangi tür kullanıcı profilinin işlendiğini belirler. - Kullanıcı, özel alan kapsayıcısını gizleyip gösterebilmelidir.
- Kullanıcı, özel alan kapsayıcısını kilitleyip kilidini açabilmelidir. Tekliflerinizi otomatikleştirmek ve optimize etmek için
kilitlemek için (
requestQuietModeEnabled()
yöntemini) özel alanı geçmek (true
) veya kilidini açmak (false
için) gerekir. Kilitliyken özel alan kapsayıcısındaki hiçbir uygulama görünmemeli veya arama gibi mekanizmalar aracılığıyla bulunamamalıdır. Uygulamanız alıcı
ACTION_PROFILE_AVAILABLE
veACTION_PROFILE_UNAVAILABLE
yayınlarını kullanabilir ve Özel alan kilitli veya kilitli değilken uygulamanızdaki kullanıcı arayüzü dahil edilir. Bu yayınların her ikisinde deEXTRA_USER
, gizli profil kullanıcısı.Özel alan profilinin kilitli olup olmadığını kontrol etmek için
isQuietModeEnabled()
yöntemini de kullanabilirsiniz.
Uygulama mağazası uygulamaları
Özel alanda "Uygulama Yükle" seçeneği bulunur gizli bir anahtar kelimeyi başlatan
kullanıcının özel alanına uygulama yüklemeyi düşünebilir. Uygulamanızın
bir <intent-filter>
belirtin.
uygulamanızın manifest dosyasında <category>
CATEGORY_APP_MARKET
.
PNG tabanlı emoji yazı tipi kaldırıldı
Eski, PNG tabanlı emoji yazı tipi dosyası (NotoColorEmojiLegacy.ttf
)
kaldırılır, sadece vektör tabanlı dosya kalır. Android 13'ten itibaren (API)
(ör. 33. düzey), sistem emoji oluşturucusu tarafından kullanılan emoji yazı tipi dosyası,
PNG tabanlı bir dosyayı vektör tabanlı bir dosyaya dönüştürün. Sistem 2024 yılında
uyumluluk nedeniyle eski yazı tipi dosyasını kullanarak
uygulamaları, eski yazı tipi dosyasını kullanmaya devam edebilir.
.
Uygulamanızın etkilenip etkilenmediğini kontrol etmek için uygulamanızın kodunda
NotoColorEmojiLegacy.ttf
dosyası oluşturun.
Uygulamanızı çeşitli şekillerde uyarlamayı seçebilirsiniz:
- Metin oluşturma için platform API'lerini kullanın. Bir bit eşlem destekli metin oluşturabilirsiniz.
Canvas
ve gerekirse ham görüntü almak için bunu kullanın. - Uygulamanıza COLRv1 yazı tipi desteğini ekleyin. FreeType açık kaynak kitaplığı sürüm 2.13.0'da COLRv1'i destekler ve daha yüksek olabilir.
- Son çare olarak, eski emoji yazı tipi dosyasını
(
NotoColorEmoji.ttf
) değerini APK'nıza yükleyin, Ancak bu durumda uygulamanız en son emoji güncellemelerini kaçıracaktır. Örneğin, Daha fazla bilgi için Noto Emoji GitHub projesine bakın. öğrenin.
Minimum hedef SDK sürümü 23'ten 24'e yükseltildi
Android 15
Android 14'te yapılan değişiklikler ve bu değişikliğin kapsamını genişleterek
daha fazla güvenlik. Android 15'te targetSdkVersion
değeri 24'ten düşük olan uygulamalar yüklenemez.
Uygulamaların modern API seviyelerini karşılamasını zorunlu kılmak, güvenliğin ve
gizlilik.
Kötü amaçlı yazılımlar, güvenlik ve gizliliği atlamak için genellikle daha düşük API seviyelerini hedefler.
yüksek Android sürümlerinde sunulan koruma özellikleri. Örneğin,
bazı kötü amaçlı yazılım uygulamalarıtargetSdkVersion
Android 6.0 Marshmallow (API) tarafından 2015'te kullanıma sunulan çalışma zamanı izin modeli
23. düzey). Android 15'teki bu değişiklik, kötü amaçlı yazılımların güvenlikten kaçınmasını zorlaştırıyor
ve gizlilikle ilgili iyileştirmeler yapıldı. Daha düşük bir API'yi hedefleyen bir uygulama yüklenmeye çalışılıyor
düzeyinde bir yükleme işlemi hatasıyla sonuçlanır ve bu hataya aşağıdaki gibi bir mesaj gönderilir
Logcat'te görünüyor:
INSTALL_FAILED_DEPRECATED_SDK_VERSION: App package must target at least SDK version 24, but found 7
Android 15'e geçen cihazlarda, targetSdkVersion
daha düşük
24'ten fazlası yüklü durumda.
Eski bir API düzeyini hedefleyen bir uygulamayı test etmeniz gerekirse aşağıdaki ADB'yi kullanın komut:
adb install --bypass-low-target-sdk-block FILENAME.apk
Güvenlik ve gizlilik
Android 15, tek kullanımlık şifre kodu (OTP) sahtekarlığıyla mücadele etmek ve kullanıcının hassas içeriklerini korumak için Notification Listener Hizmeti ile ekran paylaşımı korumalarını güçlendirmeye odaklanan güçlü önlemler sunar. Önemli iyileştirmeler arasında, güvenilmeyen uygulamaların erişebildiği bildirimlerden tek kullanımlık şifreleri çıkarma, ekran paylaşımı sırasında bildirimleri gizleme ve tek kullanımlık şifreler yayınlandığında uygulama etkinliklerini güvence altına alma yer alır. Bu değişikliklerin amacı, kullanıcının hassas içeriğini yetkisiz kişilerden korumaktır.
Geliştiricilerin, uygulamalarının Android 15'teki değişikliklerle uyumlu olmasını sağlamak için aşağıdakileri göz önünde bulundurması gerekir:
OTP Çıkarma
Android, NotificationListenerService
uygulayan güvenilmeyen uygulamaların, tek kullanımlık şifrenin algılandığı bildirimlerdeki düzeltilmemiş içeriği okumasını engeller. Eşlik eden cihaz yöneticisi dernekleri gibi güvenilir uygulamalar bu kısıtlamalardan muaftır.
Ekran Paylaşımı Koruması
- Kullanıcı gizliliğini korumak için ekran paylaşımı oturumları sırasında bildirim içeriği gizlenir. Uygulama
setPublicVersion()
'u uygularsa Android, güvenli olmayan bağlamlarda yedek bildirim olarak hizmet veren bildirimin herkese açık sürümünü gösterir. Aksi takdirde, bildirim içeriği başka bir bağlam bilgisi olmadan çıkartılır. - Şifre girişi gibi hassas içerikler, kullanıcının hassas bilgilerinin açığa çıkmasını önlemek için uzaktan izleyicilere gösterilmez.
- Ekran paylaşımı sırasında OTP algılanan ve bildirim yayınlayan uygulamalardan gelen etkinlikler gizlenir. Uygulama içeriği, başlatıldığında uzaktan görüntüleyene gösterilmez.
- Android'in hassas alanları otomatik olarak tanımlamasının yanı sıra geliştiriciler, ekran paylaşımı sırasında uzak görüntüleyenlerden gizlenen
setContentSensitivity
kullanarak uygulamalarının bölümlerini manuel olarak hassas olarak işaretleyebilir. - Geliştiriciler, demo veya test amacıyla ekran paylaşımı korumalarından muaf olmak için Geliştirici Seçenekleri bölümündeki Ekran paylaşımı korumalarını devre dışı bırak seçeneğini etkinleştirebilir. Varsayılan sistem ekran kaydedici, kayıtlar cihazda kaldığı için bu değişikliklerden muaftır.
Kamera ve medya içerikleri
Android 15, tüm uygulamalar için kamera ve medya davranışında aşağıdaki değişiklikleri yapar.
Doğrudan ve aktarma ses oynatma, kaynak sınırlarına ulaşıldığında daha önce açık olan doğrudan veya aktarma ses parçalarını geçersiz kılar
Before Android 15, if an app requested direct or offload audio playback while
another app was playing audio and the resource limits were reached, the app
would fail to open a new AudioTrack
.
Beginning with Android 15, when an app requests direct or offload
playback and the resource
limits are reached, the system invalidates any currently open
AudioTrack
objects which prevent fulfilling the new track request.
(Direct and offload audio tracks are typically opened for playback of compressed audio formats. Common use-cases for playing direct audio include streaming encoded audio over HDMI to a TV. Offload tracks are typically used to play compressed audio on a mobile device with hardware DSP acceleration.)
Kullanıcı deneyimi ve sistem kullanıcı arayüzü
Android 15, daha tutarlı ve sezgisel bir kullanıcı deneyimi sunmayı amaçlayan bazı değişiklikler içerir.
Özelliği etkinleştiren uygulamalarda tahmine dayalı geri hareketi animasyonları etkinleştirilir.
Beginning in Android 15, the developer option for predictive back animations has been removed. System animations such as back-to-home, cross-task, and cross-activity now appear for apps that have opted in to the predictive back gesture either entirely or at an activity level. If your app is affected, take the following actions:
- Ensure that your app has been properly migrated to use the predictive back gesture.
- Ensure that your fragment transitions work with predictive back navigation.
- Migrate away from animation and framework transitions and use animator and androidx transitions instead.
- Migrate away from back stacks that
FragmentManager
doesn't know about. Use back stacks managed byFragmentManager
or by the Navigation component instead.
Kullanıcı bir uygulamayı zorla durdurduğunda widget'lar devre dışı bırakılır
Bir kullanıcı, Android 15 çalıştıran bir cihazda bir uygulamayı zorla durdurursa sistem, uygulamanın tüm widget'larını geçici olarak devre dışı bırakır. Widget'lar devre dışı ve kullanıcı bunlarla etkileşimde bulunamaz. Bunun nedeni, Android 15'ten itibaren uygulama zorla durdurulduğunda sistemin, uygulamanın bekleyen tüm amaçlarını iptal etmesidir.
Kullanıcı uygulamayı bir sonraki açışında sistem bu widget'ları yeniden etkinleştirir.
Daha fazla bilgi için Paket durduruldu durumunda yapılan değişiklikler sayfasını inceleyin.
Medya yansıtma durum çubuğu çipi, kullanıcıları ekran paylaşımı, yayınlama ve kayıt hakkında uyarır
Screen projection exploits expose private user data such as financial information because users don't realize their device screen is being shared. Android has until now shown screen cast and screen record icons on the status bar, but the icons are small and often overlooked. Also, stopping screen sharing or recording is cumbersome because controls are in Quick Settings.
Android 15 introduces a new status bar chip that is large and prominent, which should alert users to any in-progress screen projection. Users can tap the chip to stop their screen from being shared, cast, or recorded.
To provide an intuitive user experience, screen projection now automatically stops when the device screen is locked.
Benefits and performance gains
The new media projection status bar chip enhances the user experience as follows:
- Alerts users to in-progress screen sharing, casting, or recording
- Enable users to terminate screen projection by tapping the chip
Automatic suspension of screen projection when the device screen is locked ensures user privacy.
Check if your app is impacted
By default, your app includes the new status bar chip and automatically suspends
screen projection when the lock screen activates. Test your app by implementing
the
onStop()
method of the
MediaProjection.Callback
.
Verify that your app responds appropriately when the screen projection stops as
a result of the user tapping the status bar chip or when the lock screen
activates.
Kullanımdan kaldırmalar
Her sürümde belirli Android API'leri kullanımdan kaldırılabilir veya daha iyi bir geliştirici deneyimi sunmak ya da yeni platform özelliklerini desteklemek için yeniden tasarlanması gerekebilir. Bu tür durumlarda, eski API'lerin desteğini resmen sonlandırır ve geliştiricileri bunun yerine kullanabilecekleri alternatif API'lere yönlendiririz.
Desteği sonlandırma, API'ler için resmi desteği sonlandırdığımız ancak geliştiricilerin bu API'leri kullanmaya devam edebileceği anlamına gelir. Bu Android sürümünde desteği sonlandırılan önemli özellikler hakkında daha fazla bilgi edinmek için desteği sonlandırılan özellikler sayfasını inceleyin.