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
Paket FLAG_STOPPED
durumunun amacı (kullanıcıların uygulama simgesine uzun basıp "Durmaya Zorla"yı seçerek AOSP derlemelerine dahil edebilmeleri) her zaman, kullanıcı uygulamayı doğrudan başlatarak veya uygulamayla dolaylı olarak etkileşimde bulunarak (paylaşım sayfası veya widget üzerinden, uygulamayı animasyonlu duvar kağıdı olarak seçerek vb.) uygulamayı bu durumdan açıkça kaldırana kadar her zaman bu durumda kalmaktadır. Android 15'te sistemin davranışını, bu hedeflenen davranışa uygun olacak şekilde güncelliyoruz. Uygulamalar yalnızca doğrudan veya dolaylı kullanıcı işlemi yoluyla durdurulmuş durumdan kaldırılmalıdır.
Amaçlanan davranışı desteklemek için sistem, Android 15 çalıştıran bir cihazda uygulama durduruldu durumuna geçtiğinde mevcut kısıtlamalara ek olarak tüm beklemede olan niyetleri de iptal eder. Kullanıcının işlemleri uygulamayı durdurulmuş durumdan kaldırdığında, ACTION_BOOT_COMPLETED
yayını uygulamaya iletilir. Böylece bekleyen niyetleri yeniden kaydedebilirsiniz.
Uygulamanın "durduruldu" durumuna alınıp alınmadığını doğrulamak için yeni ApplicationStartInfo.wasForceStopped()
yöntemini çağırabilirsiniz.
16 KB sayfa boyutları için destek
Android 过去仅支持 4 KB 内存页面大小, 优化了系统内存性能,以针对 Android 设备通常具备的功能。从 Android 15 开始,AOSP 支持 配置为使用 16 KB (16 KB) 页面大小的设备 设备)。如果您的应用使用任何 NDK 库,请直接使用 或者通过 SDK 间接创建,那么,您需要重新构建自己的应用 支持这些 16KB 设备。
随着设备制造商不断打造出 物理内存 (RAM),许多此类设备都会采用 16KB(以及 页面大小以优化设备的性能。正在添加 支持 16 KB 页面大小的设备,可使您的应用在这些设备上运行 并有助于您的应用从相关的广告效果中获益 改进。如果不重新编译,应用可能无法在 16KB 设备上运行 在未来的 Android 版本中正式推出。
为帮助您为应用添加支持,我们提供了有关如何检查 如果您的应用受到影响 重新构建您的应用(如果适用),以及如何在 Google Play 中 使用模拟器(包括 Android 15)的 16 KB 环境 系统映像)。
Avantajlar ve performans kazanımları
16 KB sayfa boyutlarıyla yapılandırılan cihazlar, ortalama olarak biraz daha fazla bellek kullanır. Ancak, hem sistem hem de uygulamalar için çeşitli performans iyileştirmeleri sağlar:
- Sistem bellek baskısı altındayken daha düşük uygulama başlatma süreleri: Test ettiğimiz bazı uygulamalarda daha belirgin iyileştirmeler (%30'a varan) ile birlikte ortalama %3, 16 daha düşük
- Uygulama başlatma sırasında güç tüketimi azaltıldı: Ortalama% 4,56 oranında azalma
- Daha hızlı kamera başlatma: Ortalama% 4,48 daha hızlı çalışır durumda başlatma ve ortalama% 6,60 daha hızlı soğuk başlatma
- İyileştirilmiş sistem önyükleme süresi: Ortalama %8 (yaklaşık 950 milisaniye) iyileşme
Bu iyileştirmeler, ilk testlerimizi temel almaktadır ve gerçek cihazlardaki sonuçlar büyük olasılıkla farklılık gösterecektir. Testlerimizi sürdürürken uygulamaların olası kazanımlara ilişkin ek analizler sağlayacağız.
Uygulamanızın etkilenip etkilenmediğini kontrol edin
Uygulamanız yerel kod kullanıyorsa uygulamanızı 16 KB'lık cihazları destekleyecek şekilde yeniden oluşturmanız gerekir. Uygulamanızın doğal kod kullanıp kullanmadığından emin değilseniz doğal kod olup olmadığını belirlemek için APK Analizörü'nü kullanabilir ve ardından bulduğunuz ELF segmentlerinin uyumluluğunu kontrol edebilirsiniz.
Uygulamanızda, tüm kitaplıklar veya SDK'lar dahil olmak üzere yalnızca Java programlama dilinde veya Kotlin'de yazılmış kod kullanılıyorsa uygulamanız zaten 16 KB'lık cihazları destekliyor demektir. Bununla birlikte, uygulama davranışında beklenmedik gerileme olmadığından emin olmak için uygulamanızı 16 KB'lık bir ortamda test etmenizi öneririz.
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
Android 15'ten önce, bir uygulama başka bir uygulama ses çalarken doğrudan ses çalmayı veya ses çalmayı istediyse ve kaynak sınırlarına ulaşıldıysa uygulama yeni bir AudioTrack
açamazdı.
Android 15'ten itibaren, bir uygulama doğrudan veya boşaltma oynatma istediğinde ve kaynak sınırlarına ulaşıldığında sistem şu anda açık olan tüm AudioTrack
nesnelerini geçersiz kılar ve bu da yeni kanal isteğinin yerine getirilmesini engeller.
(Doğrudan ve boşaltılmış ses parçaları genellikle sıkıştırılmış ses biçimlerinin çalınması için açılır. Doğrudan ses çalmaya ilişkin yaygın kullanım alanları arasında HDMI üzerinden TV'ye kodlanmış ses akışı bulunur. Boşaltma kanalları genellikle donanım DSP hızlandırmalı bir mobil cihazda sıkıştırılmış sesi çalmak için kullanılır.)
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.
Geliştiricinin tahmini geri animasyonları seçeneği Android 15'ten itibaren kaldırıldı. Ana sayfaya geri dön, çapraz görev ve çapraz etkinlik gibi sistem animasyonları artık tamamen veya etkinlik düzeyinde tahmine dayalı geri hareketini etkinleştiren uygulamalarda görünür. Uygulamanız etkileniyorsa aşağıdaki işlemleri yapın:
- Tahmine dayalı geri hareketi kullanmak için uygulamanızın düzgün şekilde taşındığından emin olun.
- Parça geçişlerinizin tahmine dayalı geri gezinme ile çalıştığından emin olun.
- Animasyon ve çerçeve geçişlerinden uzaklaşıp bunun yerine animator ve Android geçişlerini kullanın.
FragmentManager
adlı kullanıcının bilmediği yığınlardan uzaklaşın. Bunun yerineFragmentManager
veya Gezinme bileşeni tarafından yönetilen arka yığınları kullanın.
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.