Android 13'te SDK dışı arayüz kısıtlamalarıyla ilgili güncellemeler

Android 13, Android geliştiricilerle işbirliği ve en son dahili testlere dayalı olarak kısıtlanmış SDK dışı arayüzlerin güncellenmiş listelerini içerir. Mümkün olduğunda, SDK olmayan arayüzleri kısıtlamadan önce herkese açık alternatiflerin kullanılabilir olmasını sağlarız.

Uygulamanız Android 13'ü hedeflemiyorsa bu değişikliklerin bazıları sizi hemen etkilemeyebilir. Ancak şu anda bazı SDK dışı arayüzleri (uygulamanızın hedef API düzeyine bağlı olarak) kullanabilseniz de herhangi bir SDK dışı yöntemi veya alanı kullanmak uygulamanızın bozulma riskini her zaman yüksek tutar.

Uygulamanızda SDK dışı arayüzler kullanılıp kullanılmadığından emin değilseniz öğrenmek için uygulamanızı test edebilirsiniz. Uygulamanız SDK dışı arayüzleri kullanıyorsa SDK alternatiflerine geçişi planlamaya başlamanız gerekir. Bununla birlikte, bazı uygulamaların SDK dışı arayüzleri kullanmak için geçerli kullanım alanları olduğunu anlıyoruz. Uygulamanızdaki bir özellik için SDK dışı arayüz kullanmaya alternatif bulamıyorsanız yeni bir herkese açık API isteğinde bulunmalısınız.

Android 13'teki değişikliklerin listesi

Android 13'teki liste değişiklikleri aşağıdaki kategoriye girer:

Android 13'teki tüm SDK olmayan arayüzlerin tam listesi için aşağıdaki dosyayı indirin:

Dosya: hiddenapi-flags.csv

SHA-256 sağlaması: 233a277aa8ac475b6df61bffd95665d86aac6eb2ad187b90bf42a98f5f2a11a3

Android 13'te artık engellenen SDK olmayan arayüzler

Aşağıdaki kod kutusunda, Android 12'de (API düzeyi 31) desteklenmeyen ve Android 13'te (API düzeyi 33) engellenen tüm SDK dışı arayüzler listelenmektedir. Yani bu arayüzler max-target-s listesinde yer alır. Bu nedenle, uygulamanız yalnızca Android 12'yi (API düzeyi 31) veya önceki sürümleri hedefliyorsa bu arayüzleri kullanabilir.

Amacımız, SDK dışı arayüzleri kısıtlamadan önce herkese açık alternatiflerin mevcut olmasını sağlamaktır. Uygulamanızın bu arayüzleri kullanmak için geçerli bir kullanım alanına sahip olabileceğini anlıyoruz. Uygulamanızın önceki bir sürümde kullandığı bir arayüz artık Android 13'te engelleniyorsa bu arayüz için yeni bir genel API isteğinde bulunmanız gerekir.

Landroid/app/Activity;->setDisablePreviewScreenshots(Z)V # Use setRecentsScreenshotEnabled() instead.
Landroid/os/PowerManager;->isLightDeviceIdleMode()Z # Use isDeviceLightIdleMode() instead.
Landroid/os/Process;->setArgV0(Ljava/lang/String;)V # In general, do not try to change the process name. If you must change the process name (for instance, for debugging), you can use pthread_setname_np() instead, though be aware that doing this might confuse the system.
Landroid/view/accessibility/AccessibilityInteractionClient;->clearCache(I)V # Use android.accessibilityservice.AccessibilityService#clearCache() instead.