يتضمّن Android 13 قوائم معدَّلة لواجهات غير SDK المحظورة استنادًا إلى التعاون مع مطوّري برامج Android وأحدث الاختبارات الداخلية. نحرص على توفير بدائل عامة قبل فرض قيود على الواجهات غير المتوفّرة في حزمة SDK كلما أمكن ذلك.
إذا كان تطبيقك لا يستهدف الإصدار 13 من نظام التشغيل Android، قد لا تؤثر بعض هذه التغييرات فيك على الفور. ومع ذلك، على الرغم من أنّه يمكنك حاليًا استخدام بعض الواجهات غير المضمّنة في حزمة تطوير البرامج (وفقًا لمستوى واجهة برمجة التطبيقات المستهدَف في تطبيقك)، فإنّ استخدام أي طريقة أو حقل غير مضمّن في حزمة تطوير البرامج ينطوي دائمًا على مخاطرة كبيرة بتعطُّل تطبيقك.
إذا لم تكن متأكدًا مما إذا كان تطبيقك يستخدم واجهات غير متوفّرة في حزمة SDK، يمكنك اختبار تطبيقك لمعرفة ذلك. إذا كان تطبيقك يعتمد على واجهات غير متوفّرة في حزمة SDK، عليك البدء في التخطيط للانتقال إلى بدائل حزمة SDK. ومع ذلك، ندرك أنّ بعض التطبيقات لديها حالات استخدام صالحة لاستخدام واجهات غير حِزم تطوير البرامج (SDK). إذا لم تتمكّن من العثور على بديل لاستخدام واجهة غير متوفّرة في حزمة SDK لميزة في تطبيقك، عليك طلب واجهة برمجة تطبيقات عامة جديدة.
قائمة التغييرات في Android 13
تندرج تغييرات القائمة في Android 13 ضمن الفئة التالية:
- الواجهات غير التابعة لحزمة تطوير البرامج (SDK) التي لم تكن متوافقة مع الإصدار 12 من نظام التشغيل Android (مستوى واجهة برمجة التطبيقات 31) والتي تم حظرها في الإصدار 13 من نظام التشغيل Android.
للاطّلاع على قائمة كاملة بجميع الواجهات غير المتوفّرة في حزمة SDK لنظام التشغيل Android 13، نزِّل الملف التالي:
الملف: hiddenapi-flags.csv
المجموع الاختباري لخوارزمية SHA-256: 233a277aa8ac475b6df61bffd95665d86aac6eb2ad187b90bf42a98f5f2a11a3
واجهات برمجة التطبيقات غير المضمّنة في حزمة تطوير البرامج (SDK) المحظورة الآن في Android 13
يسرد مربّع الرموز التالي جميع الواجهات غير المضمّنة في حزمة تطوير البرامج (SDK) التي لم تكن متوافقة مع الإصدار 12 من نظام التشغيل Android (مستوى واجهة برمجة التطبيقات 31) والتي تم حظرها في الإصدار 13 من نظام التشغيل Android (مستوى واجهة برمجة التطبيقات 33). وهذا يعني أنّ هذه الواجهات تنتمي إلى القائمة max-target-s، لذا لا يمكن لتطبيقك استخدام هذه الواجهات إلا إذا كان يستهدف الإصدار 12 من نظام التشغيل Android (مستوى واجهة برمجة التطبيقات 31) أو الإصدارات الأقدم.
هدفنا هو التأكّد من توفّر بدائل عامة قبل أن نفرض قيودًا على الواجهات غير المتوفّرة في حزمة SDK، ونحن ندرك أنّ تطبيقك قد يكون لديه حالة استخدام صالحة لاستخدام هذه الواجهات. إذا كانت الواجهة التي يستخدمها تطبيقك في إصدار سابق محظورة الآن في 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.