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
Android, geçmişte yalnızca 4 KB bellekli sayfa boyutlarını destekliyordu. Bu sayede, Android cihazların genel olarak sahip olduğu ortalama toplam bellek miktarı açısından sistem belleği performansı optimize edilmiş oluyordu. Android 15'ten itibaren Android, 16 KB'lık sayfa boyutu (16 KB'lık cihazlar) kullanacak şekilde yapılandırılmış cihazları desteklemektedir.
Cihaz üreticileri daha fazla miktarda fiziksel belleğe (RAM) sahip cihazlar geliştirmeye devam ettikçe, cihazın performansını optimize etmek için bu cihazların birçoğu muhtemelen 16 KB'lık (ve sonunda daha büyük) sayfa boyutlarıyla yapılandırılacaktır. 16 KB'lık cihazlar için destek eklenmesi, uygulamanızın bu cihazlarda çalışmasına ve ilişkili performans iyileştirmelerinden yararlanmasına yardımcı olur. Bu konuda size yardımcı olmak için uygulamanızın etkilenip etkilenmediğini kontrol etme, uygulamanızı yeniden oluşturma (geçerliyse) ve hem emülatörler hem de fiziksel cihazlar kullanarak uygulamanızı 16 KB'lık bir ortamda test etme konularında rehberlik sağladık.
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. Kullanıcılar, ek bir kimlik doğrulama katmanıyla hassas uygulamaları meraklı gözlerden uzak tutabilecekleri, cihazlarında ayrı bir alan oluşturabilir. Özel alandaki uygulamaların görünürlüğü kısıtlı olduğundan, bazı uygulama türlerinin, bir kullanıcının özel alanındaki uygulamaları görebilmek ve bunlarla etkileşimde bulunabilmek için ek adımlar atması gerekir.
Tüm uygulamalar
Özel alandaki uygulamalar, iş profillerinde olduğu gibi ayrı bir kullanıcı profilinde saklandığından uygulamalar, ana profilde olmayan uygulamaların yüklü kopyalarının iş profilinde olduğunu varsaymamalıdır. Uygulamanız, bu varsayımı yapan iş profili uygulamalarıyla ilgili bir mantığa sahipse bu mantığı ayarlamanız gerekir.
Başlatıcı uygulamaları
Başlatıcı uygulaması geliştirirseniz özel alandaki uygulamaların görünür hale gelmesi için aşağıdakileri yapmanız gerekir:
- Uygulamanız, cihaz için varsayılan başlatıcı uygulaması olarak atanmalıdır; diğer bir deyişle,
ROLE_HOME
rolüne sahip olmalıdır. - Uygulamanız, uygulamanızın manifest dosyasında
ACCESS_HIDDEN_PROFILES
normal iznini beyan etmelidir.
ACCESS_HIDDEN_PROFILES
iznini beyan eden başlatıcı uygulamaları, aşağıdaki özel alan kullanım alanlarını işlemelidir:
- Uygulamanızın, özel alana yüklenen uygulamalar için ayrı bir başlatıcı kapsayıcısı olmalıdır. Hangi kullanıcı profili türünün işlendiğini belirlemek için
getLauncherUserInfo()
yöntemini kullanın. - 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. Özel alanı kilitlemek (
true
atlayarak) veya kilidini açmak (false
'u geçerek) içinrequestQuietModeEnabled()
yöntemini kullanın. Kilitliyken özel alan kapsayıcısındaki hiçbir uygulama, arama gibi mekanizmalar aracılığıyla görünür veya bulunabilir olmamalıdır. Uygulamanız,
ACTION_PROFILE_AVAILABLE
veACTION_PROFILE_UNAVAILABLE
yayınları için bir alıcı kaydetmeli ve özel alan container'ının kilitli veya kilitsiz durumu değiştiğinde uygulamanızdaki kullanıcı arayüzünü güncellemelidir. Bu yayınların her ikisi de uygulamanızın gizli profil kullanıcısına referans vermek için kullanabileceğiEXTRA_USER
öğesini içerir.Özel alan profilinin kilitli olup olmadığını kontrol etmek için
isQuietModeEnabled()
yöntemini de kullanabilirsiniz.
Uygulama mağazası uygulamaları
Özel alanda, kullanıcının özel alanına uygulama yükleme niyetini başlatan bir "Uygulama Yükle" düğmesi bulunur. Uygulamanızın bu örtülü niyeti alması için uygulamanızın manifest dosyasında <intent-filter>
öğesini CATEGORY_APP_MARKET
ile <category>
bildirin.
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ı ç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.
- 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.