يقدّم Android 15 ميزة "معدّل التحديث التكيّفي" (ARR)، التي تتيح لمعدّل تحديث الشاشة التكيّف مع عدد اللقطات في الثانية للمحتوى باستخدام خطوات منفصلة للمزامنة العمودية (VSync).
تقدّم ميزة ARR المزايا التالية:
- تقليل استهلاك الطاقة: بشكلٍ تلقائي، تتيح ميزة ARR للأجهزة العمل بمعدّلات أقل من الحد الأقصى لمعدّلات التحديث، والانتقال إلى معدّلات أعلى فقط عندما يكون ذلك ضروريًا لتجربة المستخدم، ما يقلّل من استهلاك الطاقة غير الضروري.
- تقليل التشويش: تزيل ميزة ARR الحاجة إلى تبديل الوضع، وهو سبب معروف للتشويش.
نظرة عامة
في لوحات العرض غير المتوافقة مع ميزة ARR، يتم تحديث الشاشة بوتيرة ثابتة يحدّدها وضع العرض النشط.
في لوحات العرض المتوافقة مع ميزة ARR، يتم فصل معدّل المزامنة العمودية ومعدّل التحديث، ما يتيح تغيير معدّلات التحديث ضمن وضع عرض واحد استنادًا إلى وتيرة تحديث المحتوى. يمكن أن تعمل اللوحات بمعدّلات تحديث هي قواسم تأثير تمزّق الشاشة (TE). يمكن لمصنّعي المعدات الأصلية تنفيذ ميزة ARR استنادًا إلى المفاضلات المفضّلة لديهم بين الأداء واستهلاك الطاقة.
تعرض الصورة التالية شاشة بعرض vsyncPeriod يبلغ 240 هرتز وminFrameIntervalNs (الحد الأقصى لمعدّل التحديث) يبلغ 120 هرتز. تحدث المزامنة العمودية كل 4.16 ملي ثانية. يمكن عرض إطار في أي مضاعف للمزامنة العمودية بعد minFrameIntervalNs من الإطار الأخير.
الشكل 1: مثال على ميزة ARR
التنفيذ
يتوافق Android 15 مع ميزة ARR من خلال واجهات برمجة تطبيقات جديدة لطبقة تجريد الأجهزة (HAL) لمكوِّن الأجهزة (HWC) وتغييرات على النظام الأساسي. لتفعيل ميزة ARR، على مصنّعي المعدات الأصلية توفير الدعم للتغييرات على النواة والنظام على الأجهزة
التي تعمل بنظام التشغيل Android 15 والإصدارات الأحدث، وتنفيذ الإصدار 3 من
android.hardware.graphics.composer3 واجهات برمجة التطبيقات، كما هو موضّح في الأقسام
التالية.
لمزيد من المعلومات، يمكنك الاطّلاع على التنفيذ المرجعي لواجهات برمجة التطبيقات التي تتيح ميزة ARR على أجهزة Pixel.
DisplayConfiguration.aidl
تحدّد واجهة برمجة التطبيقات DisplayConfiguration.aidl إعدادات الشاشة
باستخدام سمات العرض، بالإضافة إلى السمات التالية لميزة ARR:
-
اختيارية
vrrConfig: إذا تم ضبطها، يتم تفعيل ميزة ARR لإعدادات معيّنة. إذا تم ضبطها علىnull، يتم ضبط وضع العرض على أوضاع غير متوافقة مع ميزة ARR، مثل معدّل التحديث المتعدّد (MRR). باستخدام هذه السمة، يمكن ضبط الشاشة على معدّل التحديث المتعدّد أو ميزة ARR، ولكن ليس كليهما. vsyncPeriod: معدّل المزامنة العمودية للشاشة. في شاشات ARR، تُستخدَم هذه القيمة لاشتقاق معدّلات التحديث المنفصلة المتوافقة.على البائعين ضبط قيمة
DisplayConfiguration.vsyncPeriodلجميع الأجهزة. بالنسبة إلى شاشات العرض غير المتوافقة مع ميزة ARR، يكونDisplayConfiguration.vsyncPeriodهو معدّل تحديث الشاشة. إذا كان الجهاز يتيح معدّل 120 هرتز، يجب أن تكون هذه القيمة 8.3 ملي ثانية.بالنسبة إلى شاشات العرض المتوافقة مع ميزة ARR، يكون
DisplayConfiguration.vsyncPeriodهو معدّل إشارة تأثير تمزّق الشاشة. إذا كان الجهاز يتضمّنminFrameIntervalNsيبلغ 8.3 ملي ثانية ولكن تأثير تمزّق الشاشة يبلغ 240 هرتز، يجب أن تكون هذه القيمة 4.16 ملي ثانية.
VrrConfig.aidl
تتضمّن واجهة برمجة التطبيقات VrrConfig.aidl السمات التالية:
minFrameIntervalNs: الحد الأقصى لمعدّل التحديث الذي يمكن أن تتيحه الشاشة.NotifyExpectedPresentConfig: يتم تحديد ذلك عندما تتطلّب الشاشة إشعارًا مسبقًا بإطار قادم.
IComposerClient.notifyExpectedPresent
تقدّم تلميحًا لإطار من المرجّح أن يتم عرضه، ما يتيح للشاشة
تكييف فترة التحديث الذاتي وفقًا لذلك. يمثّل frameIntervalNs وتيرة العرض التي تلي expectedPresentTime. على سبيل المثال، إذا تم استدعاء notifyExpectedPresent باستخدام expectedPresentTime N وframeIntervalNs يبلغ 16.6 ملي ثانية، سيكون الإطار التالي عند N + 16.6 ملي ثانية بعد وقت العرض N. بعد وقت العرض N، تكون وتيرة الإطارات 16.6 ملي ثانية إلى أن تحدث تغييرات أخرى.
لا يتم استدعاء IComposerClient.notifyExpectedPresent إلا عند ضبط DisplayConfiguration.notifyExpectedPresentConfig، وفي حال استيفاء أحد شروط التوقيت التالية:
- وقت العرض خارج الوتيرة: يختلف وقت العرض المتوقّع للإطار التالي عن معدّل التحديث العادي للشاشة الذي تحدّده
frameIntervalNs. - تجاوز المهلة: تكون الفترة الزمنية بين الإطارات السابقة أكبر من أو تساوي
notifyExpectedPresentConfig.timeoutNs.
DisplayCommand.frameIntervalNs
DisplayCommand.frameIntervalNs
تقدّم تلميحًا حول وتيرة الإطارات القادمة بالنانو ثانية.
الاختبار
استخدِم
onRefreshRateChangedDebug
لتحديد الأخطاء وحلّها. تُعلم هذه الطريقة العميل بأنّه تم تغيير معدّل تحديث الشاشة.
استخدِم تطبيق الاختبار
TouchLatency
للاختبار اليدوي كما هو موضّح في الشكل 2:
الشكل 2: تطبيق الاختبار TouchLatency
في تطبيق الاختبار، استخدِم شريط التمرير لضبط معدّل العرض على قيم مختلفة لمعدّلات التحديث القاسم لمعدّل تحديث الشاشة. لاحظ كيف يتغيّر عدد اللقطات في الثانية استنادًا إلى المعدّل المطلوب.