مع كل إصدار، قد تصبح واجهات برمجة تطبيقات Android معيّنة قديمة أو قد تحتاج إلى إعادة هيكلة لتوفير تجربة أفضل للمطوّرين أو إتاحة ميزات جديدة في النظام الأساسي . وفي هذه الحالات، سيوقف Android رسميًا استخدام واجهات برمجة التطبيقات القديمة ويوجّه المطوّرين إلى استخدام واجهات برمجة التطبيقات الجديدة بدلاً منها.
في حال إيقاف العمل بشكل نهائي، انتهينا من الدعم الرسمي لواجهات برمجة التطبيقات، ولكنها ستظل متاحة للمطوّرين. تُبرز هذه الصفحة بعضًا من الوظائف التي سيتم إيقافها نهائيًا في هذا الإصدار من Android. للاطّلاع على عمليات الإيقاف النهائي الأخرى، يُرجى الرجوع إلى تقرير اختلافات واجهة برمجة التطبيقات.
RenderScript
اعتبارًا من Android 12، تم إيقاف واجهات برمجة تطبيقات RenderScript نهائيًا. وستستمر هذه التحديثات في العمل، لكننا نتوقع أن تتوقف الشركات المصنّعة للأجهزة والمكونات عن تقديم دعم تسريع الأجهزة بمرور الوقت. للاستفادة بشكل كامل من ميزة تسريع وحدة معالجة الرسومات، ننصحك بإيقاف استخدام RenderScript.
قوائم تشغيل Android
تمّت إيقاف قوائم التشغيل على Android نهائيًا. لم تعُد واجهة برمجة التطبيقات قيد الصيانة، ولكن ستبقى الوظيفة الحالية متوافقة مع الأنظمة القديمة.
ننصحك بقراءة قوائم التشغيل وحفظها كملفات m3u .
إيقاف Display API نهائيًا
أصبحت أجهزة Android متاحة بأشكال مختلفة، مثل
الشاشات الكبيرة والأجهزة اللوحية والأجهزة القابلة للطي. لعرض المحتوى بشكلٍ مناسب
على كل جهاز، يجب أن يحدِّد تطبيقك حجم الشاشة أو شاشة العرض. على مدار
الوقت، قدّم نظام التشغيل Android واجهات برمجة تطبيقات مختلفة لاسترداد هذه المعلومات. في
نظام التشغيل Android 11، قدّمنا واجهة برمجة التطبيقات
WindowMetrics
وأوقفنا العمل بها نهائيًا:
في نظام التشغيل Android 12، نواصل اقتراح استخدام WindowMetrics
وسنوقف نهائيًا الطرق التالية:
يجب أن تستخدم التطبيقات واجهات برمجة تطبيقات WindowMetrics
للاستعلام عن حدود نافذتها، أو
Configuration.densityDpi
للاستعلام عن الكثافة الحالية.
تجدر الإشارة إلى أنّ مكتبة WindowManager
Jetpack تتضمّن فئة 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();