مع كل إصدار، قد تصبح واجهات برمجة تطبيقات معيّنة في Android قديمة أو تحتاج إلى إعادة تصميم لتوفير تجربة أفضل للمطوّرين أو إتاحة إمكانات جديدة على النظام الأساسي. في هذه الحالات، سيتم إيقاف واجهات برمجة التطبيقات القديمة نهائيًا في نظام التشغيل Android، وسيتم توجيه المطوّرين إلى واجهات برمجة تطبيقات جديدة لاستخدامها بدلاً منها.
يعني الإيقاف النهائي أنّنا أوقفنا الدعم الرسمي لواجهات برمجة التطبيقات، ولكن ستظل متاحة للمطوّرين. توضّح هذه الصفحة بعض عمليات الإيقاف النهائي في هذا الإصدار من Android. للاطّلاع على عمليات الإيقاف الأخرى، يُرجى الرجوع إلى تقرير الاختلافات في واجهة برمجة التطبيقات.
RenderScript
اعتبارًا من Android 12، سيتم إيقاف واجهات برمجة تطبيقات RenderScript نهائيًا. ستظل هذه الميزة متاحة، ولكن نتوقّع أن يتوقّف مصنّعو الأجهزة والمكوّنات عن توفيرها بمرور الوقت. للاستفادة بشكل كامل من ميزة تسريع وحدة معالجة الرسومات، ننصحك بالتوقف عن استخدام RenderScript.
قوائم تشغيل Android
تم إيقاف قوائم التشغيل على Android نهائيًا. لم يعُد يتم الحفاظ على واجهة برمجة التطبيقات، ولكن ستظل الوظيفة الحالية متاحة للتوافق.
ننصحك بقراءة قوائم التشغيل وحفظها كملفات m3u.
إيقاف واجهات برمجة التطبيقات في "الإعلانات الصورية" نهائيًا
تتوفّر أجهزة Android بأشكال مختلفة، مثل الشاشات الكبيرة والأجهزة اللوحية والأجهزة القابلة للطي. لعرض المحتوى بشكل مناسب على كل جهاز، يجب أن يحدّد تطبيقك حجم الشاشة أو العرض. على مدار السنوات، وفّر نظام التشغيل Android واجهات برمجة تطبيقات مختلفة لاسترداد هذه المعلومات. في نظام التشغيل Android 11، قدّمنا واجهة برمجة التطبيقات
WindowMetrics
وأوقفنا نهائيًا
الطرق التالية:
في نظام التشغيل Android 12، سنواصل اقتراح استخدام WindowMetrics
وسنتوقف عن استخدام الطرق التالية:
يجب أن تستخدم التطبيقات واجهات برمجة التطبيقات WindowMetrics
للاستعلام عن حدود النافذة، أو
Configuration.densityDpi
للاستعلام عن الكثافة الحالية.
يُرجى العِلم أنّ مكتبة Jetpack WindowManager
تتضمّن فئة WindowMetrics
متوافقة مع الإصدار 4.0.1 من نظام التشغيل Android (المستوى 14 من واجهة برمجة التطبيقات) والإصدارات الأحدث.
أمثلة
في ما يلي بعض الأمثلة حول كيفية استخدام WindowMetrics
.
في البداية، تأكَّد من أنّ تطبيقك يمكنه جعل أنشطته قابلة لتغيير الحجم بالكامل.
يجب أن يعتمد النشاط على WindowMetrics
من سياق النشاط لأي عمل متعلق بواجهة المستخدم، خاصةً WindowManager.getCurrentWindowMetrics()
.
إذا كان تطبيقك ينشئ MediaProjection
، يجب أن تكون الحدود بالحجم الصحيح
لأنّ العرض يلتقط الشاشة. إذا كان التطبيق قابلاً لتغيير الحجم بالكامل، سيعرض سياق النشاط الحدود الصحيحة.
Kotlin
val projectionMetrics = activityContext .getSystemService(WindowManager::class.java).maximumWindowMetrics
Java
WindowMetrics projectionMetrics = activityContext .getSystemService(WindowManager.class).getMaximumWindowMetrics();
إذا لم يكن التطبيق قابلاً لتغيير الحجم بالكامل، يجب أن يستعلم عن الحدود من مثيل WindowContext
، وأن يسترد WindowMetrics الخاصة بأقصى مساحة عرض متاحة للتطبيق باستخدام WindowManager.getMaximumWindowMetrics()
.
Kotlin
val windowContext = context.createWindowContext(mContext.display!!, WindowManager.LayoutParams.TYPE_APPLICATION, null) val projectionMetrics = windowContext.getSystemService(WindowManager::class.java) .maximumWindowMetrics
Java
Context windowContext = mContext.createWindowContext(mContext.getDisplay(), WindowManager.LayoutParams.TYPE_APPLICATION, null; WindowMetrics projectionMetrics = windowContext.getWindowManager() .getMaximumWindowMetrics();