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

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

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

  • يجب أن تستهدف التطبيقات الجديدة وتحديثات التطبيقات الإصدار 14 من نظام التشغيل Android (المستوى 34 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث لإرسالها إلى Google Play، باستثناء تطبيقات Wear OS وAndroid TV التي يجب أن تستهدف Android 13 (المستوى 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. راجِع التعليمات في الأقسام التالية، بناءً على الإصدار الذي يتم النقل إليه.

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

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

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

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

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

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

الأداء

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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