تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
مع كل إصدار، قد تصبح واجهات برمجة تطبيقات معيّنة في Android قديمة أو تحتاج إلى إعادة تصميم لتوفير تجربة أفضل للمطوّرين أو إتاحة إمكانات جديدة على النظام الأساسي. في هذه الحالات، سيتم إيقاف واجهات برمجة التطبيقات القديمة نهائيًا في نظام التشغيل Android، وسيتم توجيه المطوّرين إلى واجهات برمجة تطبيقات جديدة لاستخدامها بدلاً منها.
يعني الإيقاف النهائي أنّنا أوقفنا الدعم الرسمي لواجهات برمجة التطبيقات، ولكن ستظل متاحة للمطوّرين. توضّح هذه الصفحة بعض عمليات الإيقاف النهائي في هذا الإصدار من Android. للاطّلاع على عمليات الإيقاف الأخرى، يُرجى الرجوع إلى تقرير الاختلافات في واجهة برمجة التطبيقات.
RenderScript
اعتبارًا من Android 12، سيتم إيقاف واجهات برمجة تطبيقات RenderScript نهائيًا. ستظل هذه الميزة متاحة، ولكن نتوقّع أن يتوقّف مصنّعو الأجهزة والمكوّنات عن توفيرها بمرور الوقت. للاستفادة بشكل كامل من ميزة تسريع وحدة معالجة الرسومات، ننصحك بالتوقف عن استخدام RenderScript.
قوائم تشغيل Android
تم إيقاف قوائم التشغيل على Android نهائيًا. لم يعُد يتم الحفاظ على واجهة برمجة التطبيقات، ولكن ستظل الوظيفة الحالية متاحة لضمان التوافق.
إيقاف واجهات برمجة التطبيقات في "الإعلانات الصورية" نهائيًا
تتوفّر أجهزة Android بأشكال مختلفة، مثل الشاشات الكبيرة والأجهزة اللوحية والأجهزة القابلة للطي. لعرض المحتوى بشكل مناسب على كل جهاز، يجب أن يحدّد تطبيقك حجم الشاشة أو العرض. على مدار السنوات، وفّر نظام التشغيل Android واجهات برمجة تطبيقات مختلفة لاسترداد هذه المعلومات. في نظام التشغيل Android 11، قدّمنا واجهة برمجة التطبيقات
WindowMetrics وأوقفنا نهائيًا
الطرق التالية:
يجب أن تستخدم التطبيقات واجهات برمجة التطبيقات WindowMetrics للاستعلام عن حدود النافذة، أو
Configuration.densityDpi
للاستعلام عن الكثافة الحالية.
يُرجى العِلم أنّ مكتبة Jetpack WindowManager
تتضمّن فئة WindowMetrics
متوافقة مع الإصدار 4.0.1 من نظام التشغيل Android (المستوى 14 من واجهة برمجة التطبيقات) والإصدارات الأحدث.
أمثلة
في ما يلي بعض الأمثلة حول كيفية استخدام WindowMetrics.
إذا كان تطبيقك ينشئ MediaProjection، يجب أن تكون الحدود بالحجم الصحيح
لأنّ العرض يلتقط الشاشة. إذا كان التطبيق قابلاً لتغيير الحجم بالكامل، سيعرض سياق النشاط الحدود الصحيحة.
إذا لم يكن التطبيق قابلاً لتغيير الحجم بالكامل، يجب أن يستعلم عن الحدود من مثيل WindowContext، وأن يسترد WindowMetrics لأقصى مساحة عرض متاحة للتطبيق باستخدام WindowManager.getMaximumWindowMetrics().
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ 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,["With each release, specific Android APIs may become obsolete or need to be\nrefactored to provide a better developer experience or support new platform\ncapabilities. In these cases, Android will officially deprecate the obsolete\nAPIs and direct developers to new APIs to use instead.\n\nDeprecation means that we've ended official support for the APIs, but they will\ncontinue to remain available to developers. This page highlights some of the\ndeprecations in this release of Android. To see other deprecations, refer to the\n[API diff report](/sdk/api_diff/31/changes).\n\nRenderScript\n\nStarting with Android 12, the RenderScript APIs are deprecated. They will\ncontinue to function, but we expect that device and component manufacturers will\nstop providing hardware acceleration support over time. To take full advantage\nof GPU acceleration, we recommend [migrating away from RenderScript](/guide/topics/renderscript/migrate).\n\nAndroid playlists\n\nAndroid [playlists](/reference/android/provider/MediaStore.Audio.Playlists) are\ndeprecated. The API is no longer maintained but the current functionality\nremains for compatibility.\n\nWe recommend reading and saving playlists as [m3u](https://en.wikipedia.org/wiki/M3U)\nfiles.\n\nDisplay API deprecations\n\nAndroid devices are becoming available in many different form factors, such as\nlarge screens, tablets, and foldables. In order to render content appropriately\nfor each device, your app needs to determine the screen or display size. Over\ntime Android provided different APIs for retrieving this information. In\nAndroid 11 we introduced the\n[`WindowMetrics`](/reference/android/view/WindowMetrics) API and deprecated\nthese methods:\n\n- [`Display.getSize()`](/reference/android/view/Display#getSize(android.graphics.Point))\n- [`Display.getMetrics()`](/reference/android/view/Display#getMetrics(android.util.DisplayMetrics))\n\nIn Android 12 we continue to recommend using `WindowMetrics`\nand are deprecating these methods:\n\n- [`Display.getRealSize()`](/reference/android/view/Display#getRealSize(android.graphics.Point))\n- [`Display.getRealMetrics()`](/reference/android/view/Display#getRealMetrics(android.util.DisplayMetrics))\n\nApps should use the `WindowMetrics` APIs to query the bounds of their window, or\n[`Configuration.densityDpi`](/reference/android/content/res/Configuration#densityDpi)\nto query the current density.\n\nNote that the Jetpack [`WindowManager`](/jetpack/androidx/releases/window)\nlibrary includes a [`WindowMetrics`](/reference/androidx/window/layout/WindowMetrics)\nclass that supports Android 4.0.1 (API level 14) and higher.\n\nExamples\n\nHere are some examples how to use `WindowMetrics`.\n\nFirst, be sure your app can make its activities\n[fully resizable](https://developer.android.com/guide/topics/ui/multi-window).\n\nAn activity should rely upon `WindowMetrics` from an activity context for\nany UI-related work, particularly\n[`WindowManager.getCurrentWindowMetrics()`](/reference/android/view/WindowManager#getCurrentWindowMetrics()).\n\nIf your app creates a `MediaProjection`, the bounds must be correctly sized\nsince the projection captures the display. If the app is fully resizable, the\nactivity context returns the correct bounds. \n\nKotlin \n\n```kotlin\nval projectionMetrics = activityContext\n .getSystemService(WindowManager::class.java).maximumWindowMetrics\n```\n\nJava \n\n```java\nWindowMetrics projectionMetrics = activityContext\n .getSystemService(WindowManager.class).getMaximumWindowMetrics();\n```\n\nIf the app is not fully resizable, it must query the bounds from a\n`WindowContext` instance, and retrieve the WindowMetrics of the maximum display\narea available to the application using\n[`WindowManager.getMaximumWindowMetrics()`](/reference/android/view/WindowManager#getMaximumWindowMetrics()) \n\nKotlin \n\n```kotlin\nval windowContext = context.createWindowContext(mContext.display!!,\n WindowManager.LayoutParams.TYPE_APPLICATION, null)\nval projectionMetrics = windowContext.getSystemService(WindowManager::class.java)\n .maximumWindowMetrics\n```\n\nJava \n\n```java\nContext windowContext = mContext.createWindowContext(mContext.getDisplay(),\n WindowManager.LayoutParams.TYPE_APPLICATION, null;\nWindowMetrics projectionMetrics = windowContext.getWindowManager()\n .getMaximumWindowMetrics();\n```\n| **Note:** Any library that uses `MediaProjection` should follow this advice as well and query the appropriate `WindowMetrics` for the app window."]]