Davranış değişiklikleri: tüm uygulamalar

Android 15 platformu, uygulamanızı etkileyebilecek davranış değişiklikleri içerir. Aşağıdaki davranış değişiklikleri, targetSdkVersion'ten bağımsız olarak Android 15 işletim sistemli tüm uygulamalar için geçerlidir. Uygulamanızı test etmeli ve mümkün olduğunda bunları doğru şekilde desteklemek için gereken şekilde değiştirmelisiniz.

Yalnızca Android 15'i hedefleyen uygulamaları etkileyen davranış değişikliklerinin listesini de incelemeyi unutmayın.

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'te kullanıcıların cihazlarında ayrı bir alan oluşturmalarına olanak tanıyan yeni bir özelliktir. Bu özellik sayesinde hassas uygulamaları meraklı gözlerden uzak tutmak için ek bir kimlik doğrulama katmanıyla karşılaşabilirler. Özel alandaki uygulamaların görünürlüğü kısıtlı olduğundan, bazı uygulama türlerinin, 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ş profillerine benzer şekilde ayrı bir kullanıcı profilinde saklandığından uygulamalar, ana profilde bulunmayan yüklenmiş kopyalarının iş profilinde olduğunu varsaymamalıdır. Uygulamanız, iş profili uygulamalarıyla ilgili bir mantığa sahip olduğunda bu varsayımı yapmanı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:

  1. 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.
  2. 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:

  1. Uygulamanızın, özel alana yüklenen uygulamalar için ayrı bir başlatıcı kapsayıcısı olmalıdır.
  2. Kullanıcı, özel alan kapsayıcısını gizleyip gösterebilmelidir.
  3. Kullanıcı, özel alan kapsayıcısını kilitleyebilmelidir ve kapsayıcının kilidini açabilmelidir.
  4. 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.

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 bir <intent-filter> öğesini CATEGORY_APP_MARKET ile <category> bildirin.

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, tüm uygulamaların 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ı ve sezgisel bir kullanıcı deneyimi sunmayı amaçlayan bazı değişiklikler vardır.

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 yerine FragmentManager 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 ya da yeni platform özelliklerini desteklemek için yeniden düzenlenmesi gerekebilir. Bu durumlarda, eski API'leri resmi olarak kullanımdan kaldırır ve geliştiricileri bunların yerine kullanılacak alternatif API'lere yönlendiririz.

Desteğin sonlandırılması, API'ler için resmî desteği sona erdirdiğimiz ancak API'lerin geliştiricilerin kullanımına devam edeceği anlamına gelir. Android'in bu sürümündeki önemli desteği sonlandırılan durumlar hakkında daha fazla bilgi edinmek için kullanımdan kaldırma işlemleri sayfasına göz atın.