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.
Performans ve pil
Görev Yöneticisi
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:
- Sistemin uygulamanızı "Kısıtlanmış" durumuna ne zaman yerleştirdiğiyle ilgili kurallar güncellendi Uygulaması Bekleme Paketi.
- Kullanıcı uygulamanızı yerleştirdiğinde uygulamanızın yapabileceği çalışmalarla ilgili yeni sınırlamalar "Kısıtlanmış" durum: arka planda pil kullanımı.
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ı](https://developer.android.com/static/images/about/versions/13/sensitive-content-before.png?authuser=9&hl=tr)
![Hassas içeriği işaretleyen metin önizlemesi kopyalandı.](https://developer.android.com/static/images/about/versions/13/sensitive-content-after.png?authuser=9&hl=tr)
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ılanSpeechService
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.