استيفاء متطلبات مستوى واجهة برمجة التطبيقات المستهدف في Google Play

عند تحميل حزمة APK، يجب أن تستوفي متطلبات مستوى واجهة برمجة التطبيقات المستهدَف في Google Play.

اعتبارًا من 31 أغسطس 2026:

  • يجب أن تستهدف التطبيقات الجديدة وتحديثات التطبيقات الإصدار Android 16 (المستوى 36 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث لإرسالها إلى Google Play، باستثناء تطبيقات Wear OS وAndroid Automotive التي يجب أن تستهدف الإصدار Android 15 (المستوى 35 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث، وتطبيقات Android TV وAndroid XR التي يجب أن تستهدف الإصدار Android 14 (المستوى 34 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث.
  • يجب أن تستهدف التطبيقات الحالية Android 15 (المستوى 35 من واجهة برمجة التطبيقات) أو الإصدارات الأحدث لكي تبقى متاحة للمستخدمين الجُدد على الأجهزة التي تعمل بنظام التشغيل Android الأحدث من مستوى واجهة برمجة التطبيقات المستهدف في تطبيقك. بالنسبة إلى التطبيقات التي تستهدف الإصدار 14 من نظام التشغيل Android (المستوى 34 لواجهة برمجة التطبيقات) أو الإصدارات الأقدم، بما في ذلك الإصدار 13 من نظام التشغيل Android (المستوى 33 لواجهة برمجة التطبيقات) أو الإصدارات الأقدم المتوافقة مع Wear OS وAndroid TV وAndroid XR، والإصدار 12 من نظام التشغيل Android (المستوى 31 لواجهة برمجة التطبيقات) أو الإصدارات الأقدم المتوافقة مع Android Automotive، فلن تكون متاحة إلا على الأجهزة التي تعمل بإصدار Android مماثل لمستوى واجهة برمجة التطبيقات المستهدف لتطبيقك أو أقدم منه.

إذا كنت بحاجة إلى وقت إضافي لتحديث تطبيقك، يمكنك طلب تمديد الموعد النهائي إلى 1 نوفمبر 2026. وستتوفّر استمارات طلب تمديد الموعد النهائي لتطبيقك في Play Console في وقت لاحق من هذا العام.

تتضمن الحالات المستثناة من هذه المتطلبات ما يلي:

  • التطبيقات الخاصة بشكل دائم التي تقتصر على مستخدمين في مؤسسة معيَّنة والمخصَّصة للتوزيع الداخلي فقط

لماذا يجب استهداف حِزم SDK الأحدث؟

يقدّم كل إصدار جديد من Android تغييرات تهدف إلى تحسين الأمان والأداء وتعزيز تجربة مستخدمي Android. لا تنطبق بعض هذه التغييرات إلا على التطبيقات التي تذكر صراحةً توافقها من خلال سمة البيان targetSdkVersion (المعروفة أيضًا باسم مستوى واجهة برمجة التطبيقات المستهدَف).

عند ضبط إعدادات تطبيقك لاستهداف مستوى واجهة برمجة التطبيقات الحديث، فإنّ ذلك يضمن استفادة المستخدمين من هذه التحسينات، مع السماح بتشغيل التطبيق على إصدارات Android قديمة. يسمح استهداف مستوى واجهة برمجة التطبيقات الحديث لتطبيقك أيضًا بالاستفادة من أحدث ميزات النظام الأساسي لإرضاء المستخدمين. بالإضافة إلى ذلك، اعتبارًا من الإصدار Android 10 (المستوى 29 لواجهة برمجة التطبيقات)، يظهر للمستخدمين تحذير عند تشغيل تطبيق لأول مرة إذا كان التطبيق يستهدف الإصدار Android 5.1 (المستوى 22 لواجهة برمجة التطبيقات) أو الإصدارات الأقدم.

يُبرز هذا المستند النقاط المهمة التي يجب معرفتها عند تحديث مستوى واجهة برمجة التطبيقات المستهدف لاستيفاء متطلبات Google Play. يمكنك الاطّلاع على التعليمات في الأقسام التالية، استنادًا إلى الإصدار الذي تريد نقل البيانات إليه.

نقل البيانات من الإصدار 12 من نظام التشغيل Android والإصدارات الأحدث (المستوى 31 لواجهة برمجة التطبيقات) إلى إصدار أحدث

لتحديث تطبيقك لاستهداف إصدار أحدث من Android، يُرجى اتّباع قائمة التغييرات ذات الصلة في السلوك:

نقل البيانات من Android 11 (المستوى 30 لواجهة برمجة التطبيقات) إلى Android 12 (المستوى 31 لواجهة برمجة التطبيقات)

الأمان والأذونات

تجربة المستخدم

  • الإشعارات المخصّصة: لن تستخدم الإشعارات التي تتضمّن طرق عرض مخصّصة للمحتوى مساحة الإشعارات بالكامل، بل سيطبّق النظام نموذجًا عاديًا. يضمن هذا النموذج أن يكون للإشعارات المخصّصة الزخرفة نفسها مثل الإشعارات الأخرى في جميع الحالات. هذا السلوك مطابق تقريبًا لسلوك Notification.DecoratedCustomViewStyle.
  • تغييرات في عملية التحقّق من Android App Links: عند استخدام عملية التحقّق من Android App Link، تأكَّد من أنّ intent filters تتضمّن الفئة "قابلة للتصفّح" وتتوافق مع نظام HTTPS.

الأداء

  • تقييد إمكانية تشغيل الخدمات التي تعمل في المقدّمة: لاستهداف الإصدار 12 من نظام التشغيل Android أو الإصدارات الأحدث، لا يمكن لتطبيقك تشغيل الخدمات التي تعمل في المقدّمة أثناء تشغيله في الخلفية، باستثناء بعض الحالات الخاصة. إذا حاول أحد التطبيقات بدء خدمة تعمل في المقدّمة أثناء تشغيله في الخلفية، يحدث استثناء (باستثناء بعض الحالات الخاصة).

    ننصحك باستخدام WorkManager لجدولة المهام المُعجَّلة وبدئها أثناء تشغيل تطبيقك في الخلفية. لإكمال الإجراءات الحسّاسة للوقت التي يطلبها المستخدم، ابدأ الخدمات التي تعمل في المقدّمة ضمن منبّه دقيق.

  • قيود الإشعارات المؤقتة: عندما ينقر المستخدمون على الإشعارات، تستجيب بعض التطبيقات من خلال تشغيل مكوّن تطبيق يبدأ النشاط الذي يراه المستخدم ويتفاعل معه. يُعرف مكوّن التطبيق هذا باسم "إشعار الترامبولين".

    يجب ألا تبدأ التطبيقات أنشطة من الخدمات أو أجهزة استقبال البث التي يتم استخدامها كأدوات لتشغيل الإشعارات. بعد أن ينقر المستخدم على إشعار أو زر إجراء ضمن الإشعار، لا يمكن لتطبيقك استدعاء startActivity() داخل خدمة أو مستقبِل بث.

يمكنك الاطّلاع على المجموعة الكاملة من التغييرات التي تؤثر في التطبيقات التي تستهدف Android 12 (المستوى 31 من واجهة برمجة التطبيقات).

نقل البيانات من إصدار أقدم من Android 11 (المستوى 30 من واجهة برمجة التطبيقات)

اختَر إصدار Android الذي ستنقل البيانات منه:

نقل البيانات إلى Android 5 (مستوى واجهة برمجة التطبيقات 21)

يُرجى الاطّلاع على صفحة "تغييرات السلوك" لكل إصدار من الإصدارات التالية للتأكّد من أنّ تطبيقك قد أخذ في الاعتبار التغييرات التي تم إدخالها في هذه الإصدارات:

تابِع باتّباع التعليمات الواردة في القسم التالي.

الترحيل إلى Android 6 (مستوى واجهة برمجة التطبيقات 23)

تنطبق الاعتبارات التالية على التطبيقات التي تستهدف الإصدار 6.0 من نظام التشغيل Android والإصدارات الأحدث من النظام الأساسي:

  • أذونات التشغيل

    • لا يتم منح الأذونات الخطيرة إلا في وقت التشغيل. يجب أن توفّر مسارات واجهة المستخدم إمكانات لمنح هذه الأذونات.

    • تأكَّد من أنّ تطبيقك جاهز للتعامل مع رفض طلبات الحصول على الأذونات كلما أمكن ذلك. على سبيل المثال، إذا رفض المستخدم طلبًا للوصول إلى نظام تحديد المواقع العالمي (GPS) في الجهاز، تأكَّد من أنّ تطبيقك يتضمّن طريقة أخرى للمتابعة.

للاطّلاع على قائمة شاملة بالتغييرات التي تم إجراؤها في الإصدار 6.0 من نظام التشغيل Android (المستوى 23 من واجهة برمجة التطبيقات)، يُرجى الانتقال إلى صفحة التغييرات في السلوك لهذا الإصدار من النظام الأساسي.

تابِع باتّباع التعليمات الواردة في القسم التالي.

الانتقال إلى Android 7 (المستوى 24 من واجهة برمجة التطبيقات)

تنطبق الاعتبارات التالية على التطبيقات التي تستهدف الإصدار 7.0 من نظام التشغيل Android والإصدارات الأحدث من النظام الأساسي:

  • "وضع السكون" و"تطبيقات وضع الاستعداد"

    صمِّم تطبيقك ليتوافق مع السلوكيات الموضّحة في مقالة التحسين لميزتَي "الاستراحة" و"تطبيقات وضع الاستعداد"، والتي تشمل التغييرات التدريجية التي تم إدخالها على مستوى إصدارات متعددة من المنصة.

    عندما يكون الجهاز في وضعَي "قيلولة" و"تطبيقات وضع الاستعداد"، يتصرف النظام على النحو التالي:

    • يتم حظر الوصول إلى الشبكة
    • يؤجّل المنبّهات وعمليات المزامنة والمهام
    • يفرض قيودًا على عمليات البحث عن شبكات Wi-Fi وإشارات GPS
    • يفرض قيودًا على رسائل مراسلة Firebase السحابية ذات الأولوية العادية.
  • تغييرات الأذونات

    • يحظر النظام الوصول إلى الأدلة الخاصة بالتطبيقات.
    • يؤدي الكشف عن معرّف موارد منتظم (URI) لـ file:// خارج تطبيقك إلى ظهور FileUriExposedException. إذا كنت بحاجة إلى مشاركة الملفات خارج تطبيقك، يمكنك تنفيذ FileProvider
  • يحظر النظام الربط بمكتبات غير تابعة لمجموعة تطوير البرامج الأصلية (NDK).

للاطّلاع على قائمة شاملة بالتغييرات التي تم إجراؤها في Android 7.0 (المستوى 24 من واجهة برمجة التطبيقات)، يُرجى الانتقال إلى صفحة التغييرات في السلوك لهذا الإصدار من النظام الأساسي.

تابِع باتّباع التعليمات الواردة في القسم التالي.

نقل البيانات إلى Android 8 (مستوى واجهة برمجة التطبيقات 26)

تنطبق الاعتبارات التالية على التطبيقات التي تستهدف الإصدار 8.0 من Android والإصدارات الأحدث من النظام الأساسي:

للاطّلاع على قائمة شاملة بالتغييرات التي تم إجراؤها في الإصدار 8.0 من Android (مستوى واجهة برمجة التطبيقات 26)، يُرجى الانتقال إلى صفحة التغييرات في السلوك لهذا الإصدار من النظام الأساسي.

نقل البيانات من Android 8 (المستوى 26 من واجهة برمجة التطبيقات) إلى Android 9 (المستوى 28 من واجهة برمجة التطبيقات)

للاطّلاع على قائمة شاملة بالتغييرات التي تم إجراؤها في Android 9.0 (المستوى 28 لواجهة برمجة التطبيقات)، يُرجى الاطّلاع على التغييرات في السلوك.

الترحيل من Android 9 (مستوى واجهة برمجة التطبيقات 28) إلى Android 10 (مستوى واجهة برمجة التطبيقات 29)

نقل البيانات من Android 10 (مستوى واجهة برمجة التطبيقات 29) إلى Android 11 (مستوى واجهة برمجة التطبيقات 30)

للاطّلاع على قائمة شاملة بالتغييرات التي تم إجراؤها في Android 11 (المستوى 30 لواجهة برمجة التطبيقات)، يُرجى الانتقال إلى صفحة التغييرات في السلوك.

واصِل التحديث إلى المستوى 31 من واجهة برمجة التطبيقات باتّباع التعليمات الواردة في القسم السابق.

تحديث تطبيقاتك

عند تحديث مستوى واجهة برمجة التطبيقات المستهدَف لتطبيقاتك، ننصحك باستخدام ميزات النظام الأساسي الحديثة لتطوير تطبيقاتك وإرضاء المستخدمين.

  • ننصحك باستخدام CameraX، وهو في الإصدار التجريبي، للاستفادة إلى أقصى حد من استخدام الكاميرا.
  • استخدِم مكوّنات Jetpack لمساعدتك في اتّباع أفضل الممارسات، وتجنُّب كتابة الرموز البرمجية النموذجية، وتبسيط المهام المعقّدة، حتى تتمكّن من التركيز على الرموز البرمجية التي تهمّك.
  • استخدِم Kotlin لكتابة تطبيقات أفضل بشكل أسرع وباستخدام رموز برمجية أقل.
  • تأكَّد من اتّباع متطلبات الخصوصية وأفضل الممارسات.
  • إضافة ميزة المظهر الداكن إلى تطبيقاتك
  • أضِف ميزة التنقّل بالإيماءات إلى تطبيقاتك.
  • انقل تطبيقك من خدمة المراسلة عبر السحابة الإلكترونية من Google‏ (GCM) إلى أحدث إصدار من خدمة المراسلة عبر السحابة الإلكترونية من Firebase.
  • استفِد من الإدارة المتقدّمة للنوافذ.

التحقّق من حزم تطوير البرامج (SDK) والمكتبات وتحديثها

تأكَّد من أنّ تبعيات حِزم تطوير البرامج (SDK) التابعة لجهات خارجية متوافقة مع المستوى 31 من واجهة برمجة التطبيقات: ينشر بعض مزوّدي حِزم تطوير البرامج (SDK) ذلك في ملف البيان، بينما يتطلّب البعض الآخر إجراء مزيد من التحقيق. إذا كنت تستخدم حزمة SDK لا تتوافق مع المستوى 31 من واجهة برمجة التطبيقات، عليك إعطاء الأولوية للتعاون مع موفّر حزمة SDK لحلّ المشكلة.

بالإضافة إلى ذلك، يُرجى العِلم أنّ targetSdkVersion في تطبيقك أو لعبتك قد يفرض قيودًا على الوصول إلى مكتبات نظام Android الأساسي الخاصة. يُرجى الاطّلاع على ربط تطبيقات NDK بمكتبات النظام الأساسي لمعرفة التفاصيل.

يجب أيضًا التحقّق من أي قيود قد تكون موجودة في إصدار "مكتبة دعم Android" الذي تستخدمه. وكالعادة، عليك التأكّد من التوافق بين رقم الإصدار الرئيسي من "مكتبة دعم Android" وcompileSdkVersion لتطبيقك.

ننصحك باختيار targetSdkVersion أصغر من أو يساوي رقم الإصدار الرئيسي لمكتبة الدعم. ننصحك بالتحديث إلى إصدار حديث متوافق من "مكتبة الدعم" للاستفادة من أحدث ميزات التوافق وإصلاحات الأخطاء.

اختبار تطبيقك

بعد تحديث مستوى واجهة برمجة التطبيقات وميزات تطبيقك حسب الاقتضاء، عليك اختبار بعض حالات الاستخدام الأساسية. الاقتراحات التالية ليست شاملة، ولكنّها تهدف إلى توجيه عملية الاختبار. ننصحك باختبار ما يلي:

  • أن يتم تجميع تطبيقك في المستوى 29 من واجهة برمجة التطبيقات بدون أخطاء أو تحذيرات
  • أنّ تطبيقك يتضمّن استراتيجية للحالات التي يرفض فيها المستخدم طلبات الحصول على الأذونات، ويطلب من المستخدم الحصول على الأذونات لإجراء ذلك:

    • انتقِل إلى شاشة "معلومات التطبيق" في تطبيقك، وأوقِف كل إذن.
    • افتح التطبيق وتأكَّد من عدم حدوث أي أعطال.
      • أجرِ اختبارات لحالات الاستخدام الأساسية وتأكَّد من إعادة طلب الأذونات المطلوبة.
  • يتعامل مع وضع "الاستراحة" بالنتائج المتوقعة وبدون أخطاء.

    • باستخدام adb، يمكنك وضع جهازك الاختباري في وضع Doze أثناء تشغيل تطبيقك.
      • اختبِر أي حالات استخدام تؤدي إلى ظهور رسائل "مراسلة Firebase السحابية".
      • اختبِر أي حالات استخدام تستخدم المنبّهات أو المهام.
      • تخلَّص من أي تبعيات على الخدمات التي تُشغَّل في الخلفية.
    • ضبط تطبيقك على وضع "تطبيقات وضع الاستعداد"
      • اختبِر أي حالات استخدام تؤدي إلى ظهور رسائل "مراسلة Firebase السحابية".
      • اختبِر أي حالات استخدام تستخدم Alarms.
  • يتعامل مع الصور أو الفيديوهات الجديدة التي يتم التقاطها

  • التعامل مع مشاركة الملفات مع تطبيقات أخرى - اختبِر أي حالة استخدام تشارك بيانات الملفات مع أي تطبيق آخر (حتى تطبيق آخر من المطوّر نفسه)

    • اختبِر ظهور المحتوى في التطبيق الآخر وعدم حدوث أي أعطال.

معلومات إضافية

يمكنك الموافقة على تلقّي الرسائل الإلكترونية في Google Play Console لنتمكّن من إرسال آخر الأخبار والإشعارات المهمة من Android وGoogle Play، بما في ذلك النشرة الإخبارية الشهرية للشركاء.