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

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

بدايةً من 31 آب (أغسطس) 2023:

  • يجب أن تستهدف التطبيقات الجديدة 13 Android (المستوى 33 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث باستثناء تطبيقات Wear OS التي يجب أن تستهدف إصدارًا يتراوح بين Android 11 (المستوى 30 لواجهة برمجة التطبيقات) وAndroid 13 (المستوى 33 لواجهة برمجة التطبيقات)، بشكل شامل.

  • يجب أن تستهدف تحديثات التطبيقات الإصدار 13 من نظام التشغيل Android أو الإصدارات الأحدث وأن تتكيّف مع التغييرات في السلوك في الإصدار 13، باستثناء تطبيقات Wear OS التي يجب أن تستهدف الإصدار 11 من نظام التشغيل Android.

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

ما هو الهدف من استهداف حِزم SDK أحدث؟

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

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

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

نقل البيانات من Android 12 (المستوى 31) إلى Android 13 (المستوى 33)

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

نقل البيانات من Android 11 (المستوى 30) إلى Android 12 (المستوى 31)

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

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

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

الأداء

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

نقل البيانات من Android 8 (API 26) إلى Android 9 (API 28)

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

نقل البيانات من Android 9 (المستوى 28) إلى Android 10 (المستوى 29)

نقل البيانات من Android 10 (المستوى 29) إلى Android 11 (المستوى 30)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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