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

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

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

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

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

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

  • التطبيقات الخاصة بشكل دائم التي تقتصر على مستخدمين في مؤسسة معيَّنة والمخصَّصة للتوزيع الداخلي فقط
  • التطبيقات التي تستهدف نظام التشغيل Android Automotive أو تكون مضمَّنة مع حِزم APK التي تستهدف نظام التشغيل Android Automotive

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

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

عند ضبط إعدادات تطبيقك لاستهداف مستوى حديث من واجهة برمجة التطبيقات، فإنّ ذلك يضمن استفادة المستخدمين من هذه التحسينات، مع السماح بتشغيل التطبيق على إصدارات قديمة من Android. ويسمح استهداف مستوى حديث لواجهة برمجة التطبيقات أيضًا لتطبيقك بالاستفادة من أحدث ميزات النظام الأساسي لإرضاء المستخدمين. بالإضافة إلى ذلك، اعتبارًا من الإصدار Android 10 (المستوى 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 من واجهة برمجة التطبيقات)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

للحصول على قائمة شاملة بالتغييرات التي تمّ إجراؤها في Android 8.0 (المستوى 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 من واجهة برمجة التطبيقات باتّباع التعليمات الواردة في القسم السابق.

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

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

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

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

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

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

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

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

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

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

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

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

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

    • تأكَّد من أنّ تطبيقك يعالج عمليات البث ACTION_NEW_PICTURE و ACTION_NEW_VIDEO المحظورة بشكل صحيح (أي أنّه يتم نقلها إلى مهام JobScheduler).
    • تأكَّد من أنّ أيّ حالات استخدام مهمة تعتمد على هذه الأحداث لا تزال تعمل بشكلٍ جيد.
  • التعامل مع عمليات مشاركة الملفات مع تطبيقات أخرى - اختبار أي حالة استخدام تشارك بيانات الملف مع أي تطبيق آخر (حتى تطبيقًا آخر من مطوّر البرامج نفسه)

    • اختبِر ما إذا كان المحتوى مرئيًا في التطبيق الآخر ولا يؤدي إلى تعطُّل التطبيق.

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

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