توافق التطبيقات في نظام Android
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
في نظام التشغيل Android، يشير مصطلح توافق التطبيق إلى أنّ تطبيقك يعمل بشكل سليم على إصدار معيّن من النظام الأساسي، ويكون عادةً أحدث إصدار. في كل إصدار، نجري تغييرات أساسية لتحسين الخصوصية والأمان، وننفّذ تغييرات تعمل على تطوير تجربة المستخدم بشكل عام على مستوى نظام التشغيل.
في بعض الأحيان، يمكن أن تؤثر هذه التغييرات في تطبيقاتك، لذا من المهم الاطّلاع على التغييرات في السلوك المضمّنة في كل إصدار، واختبارها، ونشر تحديثات التوافق للمستخدمين.
أهمية توافق التطبيقات
يبدأ تأثير توافق التطبيق على المستخدمين فور تحديثهم إلى أحدث إصدار من Android، سواء اشتروا جهازًا جديدًا أو ثبّتوا تحديثًا على جهازهم الحالي. ويتحمّسون لاستكشاف أحدث إصدار من Android وتجربته مع تطبيقاتهم المفضّلة. وإذا لم تعمل تطبيقاتهم بشكل صحيح، قد يتسبّب ذلك في حدوث مشاكل كبيرة لهم ولك أيضًا.
أنواع التغييرات في سلوك المنصات
يمكن أن يتأثر تطبيقك بنوعَين مختلفَين من التغييرات عند تشغيله على إصدار جديد من المنصة:
التغييرات على جميع التطبيقات
وتؤثّر هذه التغييرات في جميع التطبيقات التي تعمل على هذا الإصدار من Android، بغض النظر عن targetSdkVersion
للتطبيق.
عليك اختبار توافق تطبيقك مع هذه التغييرات بشكل استباقي أثناء إصدارات المعاينة والإصدارات التجريبية من كل إصدار جديد من Android. تبدأ تحديثات أجهزة Pixel والأجهزة الأخرى فور طرح الإصدار النهائي من نظام Android في مشروع Android المفتوح المصدر (AOSP)، لذا عندما تختبر هذه التغييرات بشكل استباقي، تساعد في ضمان انتقال المستخدمين بسلاسة إلى أحدث إصدار من Android على هذه الأجهزة.
التغييرات المستهدَفة
ولا تؤثر هذه التغييرات إلا في التطبيقات التي تستهدف هذا الإصدار من نظام التشغيل Android.
بالنسبة إلى هذه التغييرات، عليك إجراء اختبار التوافق أثناء الاستعداد لاستهداف أحدث إصدار ثابت من واجهة برمجة التطبيقات، وهو Android 16 (المستوى 36 لواجهة برمجة التطبيقات). حتى إذا لم تكن تخطّط لاستهداف إصدار جديد من Android على الفور، قد يتطلّب إجراء هذه التغييرات قدرًا كبيرًا من التطوير. ننصحك بالتعرّف على هذه التغييرات في أقرب وقت ممكن، ويُفضّل أن يكون ذلك خلال إصدارات معاينة المطوّر والإصدارات التجريبية من كل إصدار جديد من Android، حتى تتمكّن من إجراء اختبارات أولية وتقديم الملاحظات.
أدوات اختبار توافق التطبيقات
لمساعدتك في اختبار التوافق، ندرِج أكبر عدد ممكن من التغييرات غير المتوافقة
في كل إصدار ضمن إطار عمل التوافق. يتيح تضمين تغيير في إطار التوافق إمكانية تبديل الحالة، ما يسمح لك بتفعيل التغييرات أو إيقافها بشكل فردي من خيارات المطوّرين أو "أداة تصحيح أخطاء Android" (ADB). عند استخدام إطار عمل التوافق، لن تحتاج إلى تغيير targetSdkVersion
تطبيقك أو إعادة تجميعه لإجراء الاختبار الأساسي.
لمزيد من المعلومات، يُرجى الاطّلاع على اختبار وتصحيح أخطاء تغييرات سلوك النظام الأساسي في تطبيقك.
القيود المفروضة على الواجهات غير المتوفرة في حزمة SDK
في إطار جهودنا المستمرة لنقل المطوّرين تدريجيًا إلى استخدام واجهات برمجة التطبيقات المتوفّرة في حزمة SDK بدلاً من الواجهات غير المتوفّرة فيها، نعدّل قوائم الواجهات غير المتوفّرة في حزمة SDK والمحظورة في كل إصدار من إصدارات Android. وكالعادة، نرحّب بملاحظاتك وطلباتك بشأن توفير بدائل لواجهات برمجة التطبيقات العامة.
مزيد من المعلومات عن أحدث إصدارات Android:
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-08-27 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2025-08-27 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["For Android, the term *app compatibility* means that your app runs properly on a\nspecific version of the platform, typically the latest version. With each\nrelease, we make integral changes that improve privacy and security, and we\nimplement changes that evolve the overall user experience across the OS.\nSometimes these changes can affect your apps, so it's important to take a look\nat the behavior changes that are included in each released version, test against\nthem, and publish compatibility updates for your users.\n\nWhy app compatibility is important\n\nApp compatibility starts to affect your users immediately when they update to\nthe latest version of Android, whether they've purchased a new device or\ninstalled an update on their current device. They're excited to explore the\nlatest version of Android, and they want to experience it with their favorite\napps. If their apps don't work properly, it can cause major issues both for them\nand for you.\n\nTypes of platform behavior changes\n\nYour app can be affected by two different types of changes when running on a new\nplatform version:\n\nChanges for all apps\n\nThese changes affect all apps that run on that version of Android, regardless of\nan app's `targetSdkVersion`.\n\nYou should test your app's compatibility with these changes proactively during\nthe developer preview and beta releases of each new Android version. Updates to\nPixel and other devices start as soon as a new Android version reaches its final\nrelease to [Android Open Source Project (AOSP)](https://source.android.com/), so when you test proactively\nfor these changes, you help ensure that your users can seamlessly transition to\nthe latest Android version on these devices.\n\nTargeted changes\n\nThese changes only affect apps that are targeting that version of Android.\n\nFor these changes, you should perform compatibility testing as you prepare to\n[target the latest stable API version](/distribute/best-practices/develop/target-sdk), which is\nAndroid 16 (API level 36). Even if you aren't planning to target a new\nAndroid version immediately, addressing these changes can require a significant\namount of development. You should learn about these changes as early as\npossible---ideally during the developer preview and beta releases of each new\nAndroid version---so you can do preliminary testing and provide feedback.\n\nCompatibility framework tools\n\nTo help you test for compatibility, we include as many of the breaking changes\nas possible each release in the compatibility framework. Including a change in\nthe compatibility framework makes it toggleable, letting you force-enable or\ndisable the changes individually from developer options or ADB. When using the\ncompatibility framework, you don't need to change your app's `targetSdkVersion`\nor recompile your app for basic testing.\n\nTo learn more, see [Test and debug platform behavior changes in your app](/guide/app-compatibility/test-debug).\n\nRestrictions on non-SDK interfaces\n\nAs part of our ongoing effort to gradually move developers away from non-SDK\nAPIs, we update the [lists of restricted non-SDK interfaces](/guide/app-compatibility/restrictions-non-sdk-interfaces) in each Android\nrelease. As always, your feedback and [requests for public API equivalents](/guide/app-compatibility/restrictions-non-sdk-interfaces#feature-request)\nare welcome.\n\nPlatform releases\n\nLearn more about the latest Android releases:\n\n- [Android 15 (API level 35)](/about/versions/15)\n- [Android 14 (API level 34)](/about/versions/14)\n- [Android 13 (API level 33)](/about/versions/13)\n- [Android 12 (API levels 31, 32)](/about/versions/12)\n- [Android 11 (API level 30)](/about/versions/11)"]]