يقدّم نظام التشغيل Android 15 ميزة معدّل التحديث التكيّفي (ARR)، والتي تتيح لمعدّل تحديث الشاشة التكيّف مع معدّل عرض المحتوى باستخدام خطوات VSync منفصلة.
توفّر ميزة "الواقع المعزّز" المزايا التالية:
- تخفيض استهلاك الطاقة: بشكلٍ تلقائي، تتيح ميزة "تعديل معدّل عرض الإطار التكيّفي" (ARR) للأجهزة العمل بمعدّلات أقل من الحد الأقصى لمعدّلات تحديثها، ولا تنتقل إلى معدّلات أعلى إلا عندما يكون ذلك ضروريًا لتجربة المستخدم، ما يقلّل من استهلاك الطاقة غير الضروري.
 - تقليل التشويش: يزيل ARR الحاجة إلى تبديل الوضع، وهو سبب معروف لحدوث التشويش.
 
نظرة عامة
في اللوحات غير المتوافقة مع ARR، يتم تحديث الشاشة بوتيرة ثابتة يحدّدها وضع العرض النشط.
في لوحات ARR، يتم فصل معدّل VSync للعرض عن معدّل إعادة التحميل، ما يتيح تغيير معدّلات إعادة التحميل ضمن وضع عرض واحد استنادًا إلى وتيرة تحديث المحتوى. يمكن أن تعمل اللوحات بمعدلات تحديث هي قواسم لتأثير تمزّق اللوحة (TE). يمكن لمصنّعي المعدات الأصلية تنفيذ ARR استنادًا إلى المفاضلات المفضّلة لديهم بشأن استهلاك الطاقة.
يوضّح الشكل التالي شاشة بمعدّل vsyncPeriod يبلغ 240 هرتز ومعدّل minFrameIntervalNs (معدّل التحديث الأقصى) يبلغ 120 هرتز. تحدث عملية المزامنة العمودية كل 4.16 مللي ثانية. ويمكن عرض إطار في أي مضاعف لعملية المزامنة العمودية بعد minFrameIntervalNs من الإطار الأخير.
 
الشكل 1. مثال على الإيرادات المتكرّرة السنوية
التنفيذ
يتوافق الإصدار 15 من نظام التشغيل Android مع ميزة ARR من خلال واجهات برمجة تطبيقات جديدة لطبقة تجريد الأجهزة (HAL) الخاصة بمكوّن Hardware Composer وتغييرات في النظام الأساسي. لتفعيل ARR، يجب أن تتيح الشركات المصنّعة للمعدات الأصلية إجراء تغييرات على النواة والنظام على الأجهزة التي تعمل بالإصدار 15 من نظام التشغيل Android والإصدارات الأحدث، وأن تنفّذ الإصدار 3 من واجهات برمجة التطبيقات android.hardware.graphics.composer3، كما هو موضّح في الأقسام التالية.
يمكنك الاطّلاع على التنفيذ المرجعي لواجهات برمجة التطبيقات التي تتيح ميزة "الواقع المعزّز في الأماكن العامة" على هواتف Pixel للحصول على مزيد من المعلومات.
DisplayConfiguration.aidl
تحدّد واجهة برمجة التطبيقات DisplayConfiguration.aidl إعدادات العرض
باستخدام سمات العرض، بالإضافة إلى السمات التالية لخدمة ARR:
- اختياري
vrrConfig: في حال ضبط هذا الحقل، يتم تفعيل ميزة "الواقع المعزّز" لعمليات الضبط المحدّدة. إذا تم ضبط القيمة علىnull، سيتم ضبط وضع العرض على أوضاع غير ARR، مثل معدّل التحديث المتعدد (MRR). باستخدام هذه السمة، يمكن ضبط العرض على أنّه إما إيرادات متكرّرة شهرية أو إيرادات متكرّرة سنوية، ولكن ليس كليهما. vsyncPeriod: معدّل VSync للشاشة في شاشات ARR، تُستخدَم هذه القيمة لاشتقاق معدّلات التحديث المنفصلة المتاحة.على المورّدين ضبط قيمة
DisplayConfiguration.vsyncPeriodلجميع الأجهزة. بالنسبة إلى شاشات العرض غير المتوافقة مع ARR، يمثّلDisplayConfiguration.vsyncPeriodمعدّل إعادة تحميل الشاشة. إذا كان الجهاز يتيح معدّل 120 هرتز، يجب أن تكون هذه القيمة 8.3 مللي ثانية.بالنسبة إلى شاشات ARR،
DisplayConfiguration.vsyncPeriodهو معدّل تكرار إشارة TE. إذا كان الجهاز يتضمّنminFrameIntervalNsيبلغ 8.3 مللي ثانية ولكن TE يبلغ 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
في تطبيق الاختبار، استخدِم شريط التمرير لضبط معدّل العرض على قيم مختلفة من معدّلات إعادة التحميل القاسمية لمعدّل إعادة تحميل الشاشة. راقِب كيف يتغيّر عدد اللقطات في الثانية استنادًا إلى المعدّل المطلوب.