به‌روزرسانی‌های محدودیت‌های میانای غیرکیت توسعه نرم‌افزار در Android 13

Android 13 شامل فهرست‌های به‌روزشده‌ای از میاناهای غیرکیت توسعه نرم‌افزار محدودشده است که براساس همکاری با توسعه‌دهندگان Android و جدیدترین آزمایش‌های داخلی تهیه شده است. هرزمان ممکن باشد، پیش‌از محدود کردن میاناهای غیرکیت توسعه نرم‌افزار، مطمئن می‌شویم که جایگزین‌های عمومی دردسترس باشند.

اگر برنامه شما Android 13 را هدف قرار نمی‌دهد، برخی‌از این تغییرات ممکن است فوراً بر شما تأثیر نگذارد. بااین‌حال، اگرچه درحال‌حاضر می‌توانید از برخی میاناهای غیرکیت توسعه نرم‌افزار استفاده کنید (بسته به سطح میانای برنامه‌سازی کاربردی هدف برنامه‌تان)، استفاده از هرگونه روش یا فیلد غیرکیت توسعه نرم‌افزار همیشه خطر بالایی برای ازکار افتادن برنامه‌تان دارد.

اگر مطمئن نیستید که برنامه‌تان از میاناهای غیرکیت توسعه نرم‌افزار استفاده می‌کند یا نه، می‌توانید برنامه‌تان را آزمایش کنید تا متوجه شوید. اگر برنامه‌تان به میاناهای غیر SDK متکی است، باید برنامه‌ریزی برای انتقال به جایگزین‌های SDK را شروع کنید. بااین‌حال، می‌دانیم که برخی‌از برنامه‌ها موارد استفاده معتبری برای استفاده از میاناهای غیرکیت توسعه نرم‌افزار دارند. اگر نمی‌توانید جایگزینی برای استفاده از میانای غیرکیت توسعه نرم‌افزار برای ویژگی‌ای در برنامه‌تان پیدا کنید، باید درخواست میانای برنامه‌سازی کاربردی عمومی جدیدی بدهید.

فهرست تغییرات Android 13

تغییرات فهرست در Android 13 در دسته زیر قرار می‌گیرد:

  • میاناهای غیرکیت توسعه نرم‌افزار که در Android 12 (میانای برنامه‌سازی کاربردی سطح ۳۱) پشتیبانی نمی‌شدند و در Android 13 مسدود شده‌اند.

برای دریافت فهرست کامل همه میاناهای غیرکیت توسعه نرم‌افزار برای Android 13، فایل زیر را بارگیری کنید:

فایل: hiddenapi-flags.csv

جمع‌آزمای SHA-256: 233a277aa8ac475b6df61bffd95665d86aac6eb2ad187b90bf42a98f5f2a11a3

میاناهای غیرکیت توسعه نرم‌افزار که اکنون در Android 13 مسدود شده‌اند

کادر کد زیر همه میاناهای غیرکیت توسعه نرم‌افزار را که در Android 12 (سطح میانای برنامه‌سازی کاربردی ۳۱) پشتیبانی نمی‌شدند و در Android 13 (سطح میانای برنامه‌سازی کاربردی ۳۳) مسدود شده‌اند فهرست می‌کند. یعنی این میاناهای کاربری به فهرست max-target-s تعلق دارند، بنابراین برنامه‌تان فقط درصورتی می‌تواند از این میاناهای کاربری استفاده کند که Android 12 (سطح میانای برنامه‌سازی کاربردی ۳۱) یا پایین‌تر را هدف قرار دهد.

هدف ما این است که مطمئن شویم قبل‌از محدود کردن میاناهای غیرکیت توسعه نرم‌افزار، جایگزین‌های عمومی دردسترس باشند و می‌دانیم که برنامه‌تان ممکن است مورد استفاده معتبری برای استفاده از این میاناهای غیرکیت توسعه نرم‌افزار داشته باشد. اگر واسطی که برنامه‌تان در نسخه قبلی استفاده می‌کند اکنون در Android 13 مسدود شده است، باید برای آن واسط درخواست میانای برنامه کاربردی عمومی جدیدی بدهید.

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.