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

Android 13 platformu, uygulamanızı etkileyebilecek davranış değişiklikleri içerir. İlgili içeriği oluşturmak için kullanılan Aşağıdaki davranış değişiklikleri, Android 13 sürümünde çalıştırılan tüm uygulamalar için geçerlidir. targetSdkVersion olur. Uygulamanızı test edip ve bunları düzgün bir şekilde desteklemek için gereklidir.

Yalnızca uygulamaları etkileyen davranış değişikliklerinin listesini de incelediğinizden emin olun. Android 13'ü hedefleme.

Performans ve pil

Görev Yöneticisi

Bildirim çekmecesinin alt kısmında, bildirimin
  o anda arka planda çalışan uygulama sayısı. Şuna bastığınızda:
  bu düğmeyi tıkladığınızda, farklı uygulamaların adlarının listelendiği bir iletişim kutusu görünür. İlgili içeriği oluşturmak için kullanılan
  Durdur düğmesi her uygulamanın sağındadır
Şekil 1. Görev Yöneticisi iş akışı ile devam eden ön plan hizmetleri olan uygulamaları durdurmasını sağlar. Bu iş akışı yalnızca Android 13 veya sonraki sürümleri çalıştıran cihazlarda görünür.

Android 13 (API düzeyi 33) sürümünden itibaren, kullanıcılar gösterildiği gibi, devam eden ön plan hizmetleri olan uygulamaları durdurmak için bildirim çekmecesi Şekil 1'de verilmiştir. Bu yardım Görev Yöneticisi. Uygulamaların bunu işleyebilmesi gerekir kullanıcı tarafından başlatılan durduruluyor.

JobScheduler'ı kullanarak önceden getirme işini yönetme

JobScheduler, uygulamaların belirli işleri "önceden getirme" olarak işaretlemesi için bir yol sağlar işleri (JobInfo.Builder.setPrefetch() kullanarak) gösterir. Diğer bir deyişle, yaklaşmakta ve önce bu uygulamaya konmuş. JobScheduler şimdiye kadar yalnızca işlerin önceden getirilmesine izin vermek için sinyali kullanıyordu uygun şekilde serbest veya fazla verileri kullanma.

Android 13 (API düzeyi 33) ve sonraki sürümlerde sistem bir sonraki sefere ne zaman kullanıma sunulacağını belirler ve bu tahminden yararlanarak işleri olur. Uygulamalar, istedikleri iş için önceden getirme işlerini kullanmaya çalışmalıdır. önce yapılması gerekir.

Pil Kaynağı Kullanımı

Android 13 (API düzeyi 33), sistemin daha iyi performans göstermesi için aşağıdaki yöntemleri sunar cihazın pil ömrünü yönetme:

Uygulamanızı bu değişikliklerle test ederken aşağıdakileri kontrol ettiğinizden emin olun: şeyler:

  • Sistem tarafından "restricted" (kısıtlanmış) içine yerleştirdiğinde uygulamanızın nasıl tepki verdiğini test edin Uygulaması Bekleme Paketi. Şunu kullanın: aşağıdaki Android Debug Bridge (ADB) komutunu kullanarak uygulamanızı bu pakete atayın:

    adb shell am set-standby-bucket PACKAGE_NAME restricted
    
  • Uygulamanızın yaygın olarak geçerli olan aşağıdaki kısıtlamalara nasıl tepki verdiğini test edin "kısıtlanmış" durum arka planda pil kullanımı için:

    • Ön plan hizmetleri başlatılamıyor
    • Mevcut ön plan hizmetleri ön plandan kaldırılır
    • Alarmlar tetiklenmez
    • İşler yürütülmüyor

    Uygulamanızı bu "kısıtlanmış" içine yerleştirmek için aşağıdaki ADB komutunu kullanın eyalet:

    adb shell cmd appops set PACKAGE_NAME RUN_ANY_IN_BACKGROUND ignore
    

Yüksek Öncelikli Firebase Cloud Message (FCM) Kotaları

Android 13 (API düzeyi 33), Firebase Cloud Messaging (FCM) kotalarını güncelleyerek yüksek öncelikli FCM'lere yanıt olarak bildirim gösteren uygulamalar için yüksek öncelikli FCM tesliminin güvenilirliğini artırır. Android 13'te (API düzeyi 33) aşağıdakiler değişti:

  • Uygulama Bekleme Paketleri artık bir uygulamanın kaç tane yüksek öncelikli FCM kullanabileceğini belirleymiyor.
  • Yüksek öncelikli FCM kotaları, Yüksek Öncelikli FCM'lere yanıt olarak kullanıcıya gösterilen bildirim sayısıyla orantılı olarak ölçeklendirilir.

Android'in önceki sürümlerinde de olduğu gibi, kotayı aşan yüksek öncelikli FCM'ler normal önceliğe düşürülür. FCM'ye yanıt olarak Ön Plan Hizmeti'ni (FGS) başlatırken RemoteMessage.getPriority() sonucunu kontrol etmenizi, sonucun PRIORITY_HIGH olduğunu ve/veya olası ForegroundServiceStartNotAllowedException istisnaları ele aldığınızdan emin olmanızı öneririz.

Uygulamanız, Yüksek Öncelikli FCM'lere yanıt olarak her zaman bildirim yayınlamıyorsa, bildirimle sonuçlanan iletilerin eski sürüme geçirilmemesi için bu FCM'lerin önceliğini normal olarak değiştirmenizi öneririz.

Gizlilik

Bildirimler için çalışma zamanı izni

Android 13 (API düzeyi 33), yeni bir bildirim izni: POST_NOTIFICATIONS. Bu değişiklik, kullanıcıların en çok önem verdikleri bildirimlere odaklanmasını gerekir.

En kısa sürede Android 13 veya sonraki sürümleri hedeflemenizi önemle tavsiye ederiz bu ek denetim ve esneklikten olabildiğince yararlanmak için bu özelliği kullanabilirsiniz.

Daha fazla bilgi: uygulama izinleriyle ilgili en iyi uygulamalar.

Hassas içeriği panodan gizle

Uygulamanız, kullanıcıların şifre veya kredi kartı gibi hassas içerikleri kopyalamasına izin veriyorsa panoya kopyaladıktan sonra, ClipData’nın ClipboardManager#setPrimaryClip() numaralı telefonu aramadan önce ClipDescription. Ekleme bu işaret, hassas içeriğin içerik önizlemesinde görünmesini engeller.

Hassas içeriği işaretlemeden metin önizlemesi kopyalandı
Hassas içeriği işaretlemeden metin önizlemesi kopyalandı.
Hassas içeriği işaretleyen metin önizlemesi kopyalandı.
Hassas içeriği işaretleyen metin önizlemesi kopyalandı.

Hassas içeriği işaretlemek için ClipDescription öğesine fazladan bir boole ekleyin. Tümü uygulamaların bunu, hedeflenen API düzeyinden bağımsız olarak yapması gerekir.


// When your app is compiled with the API level 33 SDK or higher
clipData.apply {
    description.extras = PersistableBundle().apply {
        putBoolean(ClipDescription.EXTRA_IS_SENSITIVE, true)
    }
}

// If your app is compiled with a lower SDK
clipData.apply {
    description.extras = PersistableBundle().apply {
        putBoolean("android.content.extra.IS_SENSITIVE", true)
    }
}

Yeni pano kullanıcı arayüzü hakkında daha fazla bilgi edinmek için Özellik sayfasını kopyalayıp yapıştırın.

Güvenlik

Paylaşılan kullanıcı kimliğinden geçiş yapın

Uygulamanız, desteği sonlandırılmış android:sharedUserId özelliği özelliğin işlevselliğine bağlı olmadığından bağımsız olarak, android:sharedUserMaxSdkVersion özelliğini 32 ile ilişkilendirin:

<manifest ...>
    <!-- To maintain backward compatibility, continue to use
         "android:sharedUserId" if you already added it to your manifest. -->
    android:sharedUserId="SHARED_PACKAGE_NAME"
    android:sharedUserMaxSdkVersion="32"
    ...
</manifest>

Bu özellik, sisteme uygulamanızın artık paylaşılan bir kullanıcı kimliği. Uygulamanız android:sharedUserMaxSdkVersion beyan ediyorsa ve yeniyse Android 13 veya sonraki sürümleri çalıştıran cihazlarda yüklü olan uygulamalar android:sharedUserId hiç tanımlamamışsınız gibi davranır. Güncellenen uygulamalar hâlâ kullanıyor mevcut paylaşılan kullanıcı kimliği.

Paylaşılan kullanıcı kimlikleri, paket yöneticisi içinde deterministik olmayan davranışa neden olur. Uygulamanız bunun yerine hizmetler gibi uygun iletişim mekanizmaları kullanmalıdır ortak bileşenlerin birlikte çalışmasını kolaylaştırmak için içerik sağlayıcılardan sorumludur.

Kullanıcı deneyimi

Kapatılabilir ön plan hizmeti bildirimleri

Android 13 veya sonraki sürümleri çalıştıran cihazlarda kullanıcılar ön planla ilişkili bildirimler tarafından varsayılandır.

Temel işlevler

Konuşma hizmeti uygulamasının eski kopyası kaldırıldı

Android 13, aşağıdakiler de dahil olmak üzere SpeechService uygulamasını kaldırır: Ses IME'si, RecognitionService ve amaç temelli API - Kaynak Google uygulaması.

Android 12'de aşağıdaki değişiklikler gerçekleşti:

  • SpeechService işlevi Ses Hizmetleri'ne taşındı: Google uygulamasında Bu da varsayılan SpeechService sağlayıcısı oldu.
  • RecognitionService işlevi, Android Sistemine taşındı Cihaz üzerinde konuşma tanımayı destekleyen Intelligence uygulaması.

Google uygulaması, Android 12'de uygulama uyumluluğunu korumaya yardımcı olmak için , trafiği Google Ses Hizmetleri uygulamasına yönlendirmek için trambolin kullanır. İçinde Android 13, bu trambolin kaldırıldı.

Uygulamalar, SpeechService için cihazın varsayılan sağlayıcısını kullanmalıdır. sabit kodlamayla başlayacağız.