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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

الأداء

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

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

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

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

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

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

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

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

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

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

نقل البيانات إلى الإصدار 6 من نظام التشغيل Android (المستوى 23 لواجهة برمجة التطبيقات)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

التحقّق من حِزم SDK والمكتبات وتحديثها

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

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

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

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

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

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

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

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

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

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

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

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

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