Android 15 platformu, uygulamanızı etkileyebilecek davranış değişiklikleri içerir.
Aşağıdaki davranış değişiklikleri, Android 15 ile birlikte çalıştırılan tüm uygulamalar için geçerlidir.
targetSdkVersion
fark etmez. Uygulamanızı test edip
ve uygun olduğunda bunları düzgün bir şekilde desteklemek için.
Temel işlevler
Android 15, Android sisteminin çeşitli temel özelliklerini değiştirir veya genişletir.
Paketin durma durumunda yapılan 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 boyutu desteği
Ö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ı
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 elde eder:
- Sistem bellek baskısı altındayken daha düşük uygulama başlatma süreleri: Ortalama %3,16 daha düşük, test ettiğimiz bazı uygulamalar için daha önemli iyileştirmeler (%30'a kadar)
- Uygulama başlatılırken daha az güç tüketimi: Ortalama% 4,56 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ı baştan başlatma
- İyileştirilmiş sistem başlatma süresi: Ortalama %1,5 (yaklaşık 0,8 saniye) iyileştirildi
Bu iyileştirmeler, yaptığımız ilk testlere dayanmaktadır ve gerçek cihazlardaki sonuçlar muhtemelen farklılık gösterecektir. Testlerimize devam ederken, uygulamalar için potansiyel kazançlarla ilgili ek analizler sağlayacağız.
Uygulamanızın etkilenip etkilenmediğini kontrol edin
Uygulamanız herhangi bir yerel kod kullanıyorsa uygulamanızı 16 KB'lık cihazları destekleyecek şekilde yeniden oluşturmanız gerekir. Uygulamanızın yerel kod kullanıp kullanmadığından emin değilseniz yerel kod olup olmadığını belirlemek için APK Analiz Aracı'nı kullanabilirsiniz.
Uygulamanız tüm kitaplıklar veya SDK'lar dahil olmak üzere yalnızca Java programlama dilinde veya Kotlin'de yazılmış kod kullanıyorsa zaten 16 KB'lık cihazları destekliyor demektir. Bununla birlikte, uygulama davranışında beklenmedik regresyonlar olmadığını doğrulamak 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 ve kullanıcıların Cihazlarında hassas uygulamaları uzak tutabilecekleri ayrı bir alan oluşturmalıdır ek bir kimlik doğrulama katmanıyla ortaya koyabilir. Çünkü Google'daki uygulamalar özel alanın görünürlüğü kısıtlı olduğundan bazı uygulama türlerinin Bir kullanıcının gizli hesabında uygulamaları görüp etkileşimde bulunabilmek için boşluk oluşturur.
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. Eğer uygulamanızın, bu varsayımda bulunan iş profili uygulamalarıyla ilgili bir mantığı var. bu mantığı değiştirmeniz 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 atanmalıdır.
ROLE_HOME
rolüne sahip olması gerekir. - 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ızın,
özel alan.
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ı kilitleyebilmelidir ve kapsayıcının 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ünür veya arama gibi mekanizmalarla bulunabilir. 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ı.isQuietModeEnabled()
yöntemini kullanarak özel alan profilinin kilitli olup olmadığını kontrol edebilir.
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 amaçlamaktadır. 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şiklikleri temel alır ve bu güvenliği daha da genişletir. Android 15'te, targetSdkVersion
24'ten düşük olan uygulamalar yüklenemez.
Uygulamaların modern API düzeylerini karşılamasını zorunlu kılmak, güvenliğin ve gizliliğin iyileştirilmesine yardımcı olur.
Kötü amaçlı yazılımlar, daha yüksek Android sürümlerinde kullanıma sunulan güvenlik ve gizlilik korumalarını atlamak için genellikle daha düşük API düzeylerini hedefler. Örneğin, bazı kötü amaçlı yazılım uygulamaları, 2015'te Android 6.0 Marshmallow (API düzeyi 23) tarafından kullanıma sunulan çalışma zamanı izin modeline tabi tutulmamak için 22 üzerinden targetSdkVersion
değerini kullanır. Android 15'teki bu değişiklik, kötü amaçlı yazılımların güvenlik ve gizlilik iyileştirmelerinden kaçınmasını zorlaştırır. Daha düşük bir API düzeyini hedefleyen bir uygulamayı yüklemeye çalışmak, yükleme hatasına neden olur. Logcat'te aşağıdakine benzer bir mesaj görüntülenir:
INSTALL_FAILED_DEPRECATED_SDK_VERSION: App package must target at least SDK version 24, but found 7
Android 15'e geçen cihazlarda targetSdkVersion
24'ten düşük olan tüm uygulamalar yüklü olarak kalır.
Daha eski bir API düzeyini hedefleyen bir uygulamayı test etmeniz gerekirse aşağıdaki ADB komutunu kullanın:
adb install --bypass-low-target-sdk-block FILENAME.apk
Kamera ve medya
Android 15, kamera ve medya davranışında aşağıdaki değişiklikleri yapar:
Kaynak sınırlarına ulaşıldığında artık doğrudan ve yüksüz ses çalma işlemi, daha önce açık olan doğrudan veya boşaltılan ses parçalarını geçersiz kılıyor
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 arayüzü
Android 15'te daha tutarlı, daha iyi ve daha iyi en iyi uygulamaları paylaşacağız.
Etkinleştirilen uygulamalar için tahmine dayalı geri animasyonları etkinleştirin
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.
Kullanımdan kaldırmalar
Her sürümle birlikte belirli Android API'leri eskiyebilir veya daha iyi bir geliştirici deneyimi sunmak veya yeni platformu desteklemek için yeniden düzenlendi özellikler. Bu durumlarda eski API'leri resmi olarak kullanımdan kaldırırız ve geliştiricileri bunun yerine kullanılacak alternatif API'lere yönlendirmelidir.
Desteğin sonlandırılması, API'ler için resmî desteği sona erdirdiğimiz anlamına gelir. Ancak API'ler artık otomatik olarak geliştiricilerin kullanımına sunulmaya devam edecektir. Önemli konular hakkında daha fazla bilgi edinmek için destek için kullanımdan kaldırma işlemleri sayfasına bakın.