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

Android 15 platformu, uygulamanızı etkileyebilecek davranış değişikliklerini içerir. Aşağıdaki davranış değişiklikleri, targetSdkVersion sürümünden bağımsız olarak, Android 15 ile çalışan tüm uygulamalar için geçerlidir. Uygulamanızı test etmeli ve ardından uygun olduğunda bunları doğru şekilde desteklemek için gerektiği şekilde değiştirmelisiniz.

Yalnızca Android 15'i hedefleyen uygulamaları etkileyen davranış değişiklikleri listesini de mutlaka inceleyin.

Temel işlevler

Android 15, Android sisteminin çeşitli temel özelliklerini değiştirir veya genişletir.

Paket durduruldu 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, uygulama Android 15'te durduruldu durumuna geçtiğinde mevcut kısıtlamalara ek olarak tüm beklemede olan amaçları da iptal eder. Kullanıcının işlemleri, uygulamayı durdurulmuş durumdan kaldırdığında, ACTION_BOOT_COMPLETED yayını uygulamaya dağıtılır ve beklemedeki tüm amaçları yeniden kaydetme fırsatı sağlar.

Uygulamanın "durduruldu" durumuna alınıp alınmadığını doğrulamak için yeni ApplicationStartInfo.wasForceStopped() yöntemini çağırabilirsiniz.

16 KB'lık sayfa boyutları için destek

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 gerekli değişiklikler

Özel alan, Android 15'te kullanıcıların ek bir kimlik doğrulama katmanıyla cihazlarında hassas uygulamaları meraklı gözlerden uzak tutabilecekleri ayrı bir alan oluşturmalarına olanak tanıyan yeni bir özelliktir. Ö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 onlarla 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 tutulduğundan, uygulamalar ana profilde olmayan yüklenmiş kopyalarının iş profilinde yer aldığını varsaymamalıdır. Uygulamanızın bu varsayımda iş profili uygulamalarıyla ilişkili bir mantığı varsa bu mantığı ayarlamanız gerekir.

Başlatıcı uygulamaları

Bir 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ı uygulama 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 tanımlayan başlatıcı uygulamaları aşağıdaki özel alan kullanım alanlarını işlemelidir:

  1. Özel alana yüklenen uygulamalar için uygulamanızın 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ı kilitleyebilmeli ve kilidini açabilmelidir.
  4. Kilitli durumdayken, özel alan kapsayıcısındaki hiçbir uygulama arama gibi mekanizmalar aracılığıyla görünür veya bulunabilir olmamalıdır.
  5. Kullanıcı, özel alan kapsayıcısının kilidi açıkken cihazı kilitlerse özel alan kapsayıcısı da kilitlenmelidir.

Uygulama mağazası uygulamaları

Özel alan, kullanıcının özel alanına uygulama yüklemek için dolaylı bir niyet başlatan bir "Uygulamaları Yükle" düğmesi içerir. Uygulamanızın bu örtülü niyeti alabilmesi için uygulamanızın manifest dosyasında <category> ve CATEGORY_APP_MARKET ile bir <intent-filter> beyan edin.

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 uygulamalarda kamera ve medya davranışında aşağıdaki değişiklikleri yapmaktadır.

Doğrudan ve boşaltılmış ses çalma artık kaynak sınırlarına ulaşıldığında daha önce açılmış olan doğrudan veya boşaltılmış ses kanalları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 kullanıcı arayüzü

Android 15, daha tutarlı ve sezgisel bir kullanıcı deneyimi oluşturmak için yapılan bazı değişiklikler içerir.

Etkinleştirilen uygulamalar için tahmini geri dönme animasyonları etkinleştirildi

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ımdan kaldırma sayısı

Her sürümde 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 gibi durumlarda, eski API'leri resmi olarak kullanımdan kaldırıyor ve geliştiricileri alternatif API'lere yönlendiriyoruz.

Kullanımdan kaldırma, API'ler için resmi desteği sona erdirdiğimiz ancak geliştiricilerin kullanımına sunulmaya devam edeceği anlamına gelir. Android'in bu sürümünde gerçekleşen önemli kullanımdan kaldırma işlemleri hakkında daha fazla bilgi edinmek için kullanımdan kaldırma sayfasına göz atın.