أدوات لتعزيز الأداء للألعاب

بدءًا من الإصدار 14 من نظام التشغيل Android، يتيح وضع الطاقة الجديد المُسمى GAME في إطار عمل الأداء الديناميكي لنظام التشغيل Android (ADPF) تخصيص أداء الهاتف أثناء استخدام الألعاب. GAME يشير إلى Power HAL بأنّ تطبيق لعبة قيد التشغيل في المقدّمة. يسمح هذا المؤشر لواجهة HAL للطاقة باعتماد استراتيجيات إدارة الطاقة أثناء تشغيل لعبة، ما يمنح المستخدم أداءً ثابتًا ومحسّنًا.

لتحسين وقت تحميل اللعبة، يقدّم الإصدار 13 من Android وضع الطاقة الجديد المُسمى GAME_LOADING في ADPF. يشير الرمز GAME_LOADING إلى ما إذا كان تطبيق لعبة في حالة التحميل لكي تتمكّن واجهة برمجة التطبيقات Power HAL من تقديم تحسين في التحميل. يسمح هذا المؤشر لواجهة HAL لوحدة الطاقة باتخاذ إجراءات لتحسين الأداء يمكن أن تسريع وقت loading اللعبة.

توضِّح هذه الصفحة كيفية تمرير تطبيق اللعبة حالة اللعبة إلى Power HAL، وتشرح كيفية ضبط Power HAL للاستفادة منه في أجهزتك، بالإضافة إلى كيفية اختبار تنفيذ Power HAL.

رصد وضع الطاقة وإرسال إشعارات بشأنه

يوضّح هذا القسم كيفية تعامل "مدير الطاقة" مع وضعَي GAME وGAME_LOADING.

وضع الطاقة في "وضع الألعاب"

يشير وضع الطاقة الجديد GAME في Android 14 إلى خدمة "إدارة الطاقة" أنّ المستخدم يلعب لعبة. عندما يتم إشعار Power HAL بالوضع GAME ، يمكنه ضبط الطاقة لتحسين الأداء وخفض درجة الحرارة وإطالة عمر البطارية أثناء تشغيل اللعبة.

يوضّح الشكل التالي تدفّق المعلومات إلى Power HAL لتحديد وضع الطاقة GAME:

وضع الألعاب

الشكل 1: تدفق المعلومات للإشارة إلى أنّه يتم تشغيل لعبة

يتم دائمًا ضبط وضع الطاقة GAME للتطبيقات التي تتضمن appCategory GAME في AndroidManifest.xml.

وضع الطاقة GAME_LOADING

يعمل وضع "تعزيز التحميل" من خلال رصد حالة تحميل أحد تطبيقات الألعاب وإرسال إشعار إلى Power HAL. يقدّم الإصدار Android 13 حالة لعبة جديدة تُسمى isLoading في واجهة برمجة التطبيقات الموجّهة للمطوّرين. تستخدِم حالة اللعبة هذه وضع الطاقة الجديد GAME_LOADING في خدمة "إدارة الطاقة" لإعلام Power HAL بحالة اللعبة على المستوى العلوي. بعد إرسال إشعار إلى Power HAL بحالة تحميل اللعبة، يمكنه تعديل إعدادات أداء النظام الأساسي ومعدّل ساعة وحدة المعالجة المركزية، ما يؤدي بدوره إلى تحسين أوقات التحميل.

للإشارة إلى أنّه يتم تحميل لعبة، يستخدم تطبيق اللعبة "لوحة بيانات الألعاب" لضبط حالة isLoading في "مدير الألعاب". يُرسِل "مدير الألعاب" هذه الحالة إلى "خدمة مدير الألعاب" التي تستخدِم setPowerMode مع وضع الطاقة الجديد GAME_LOADING لتشغيل "خدمة إدارة الطاقة". يشير GAME_LOADING وضع الطاقة إلى Power HAL بأنّ اللعبة في حالة loading (تحميل) حتى يتمكّن Power HAL من تقديم تحسين في التحميل.

يوضّح الشكل التالي تدفّق المعلومات من التطبيق إلى Power HAL للإشارة إلى حالة التحميل:

loading-boost

الشكل 2: تدفق المعلومات للإشارة إلى أنّ اللعبة في حالة تحميل

تتيح لوحة بيانات اللعبة للمستخدمين تفعيل ميزة "تعزيز التحميل" أو إيقافها من خلال إعدادات الأداء. يكون إعداد الأداء غير مفعّل تلقائيًا.

تخصيص Power HAL باستخدام GAME وGAME_LOADING

للاستفادة من الوضعَين GAME وGAME_LOADING، على المصنّعين الأصليين للأجهزة تخصيص عملية تنفيذ Power HAL. بما أنّ إدارة الطاقة وتعزيز الأداء خاصان بالأجهزة، لا تتوفّر تنفيذات مرجعية لGAME أو GAME_LOADING إلى أن يتم طرح تنفيذ مرجعي لجهاز Google Pixel.

لتحسين الأداء في وضعَي GAME وGAME_LOADING، يمكن لمصنّعي المعدّات الأصلية اختيار تنفيذ مجموعة من التدابير التالية:

  • استقرار عدد اللقطات في الثانية
  • زيادة سرعة وحدة المعالجة المركزية
  • خفض سرعة الجهاز مؤقتًا بسبب ارتفاع درجة الحرارة
  • منح وحدة المعالجة المركزية (CPU) أولوية أعلى لتطبيق اللعبة في المقدّمة
  • تقليل سرعة وحدة المعالجة المركزية المحسَّنة للتطبيقات العادية غير الألعاب
  • تحسين استراتيجية توزيع الطاقة ذات الصلة بالحرارة

اختبار تنفيذ وضع "الألعاب"

لاختبار تنفيذ وضع GAME، استخدِم الاختبارات التي تبدأ بالبادئة testGamePowerMode_ في GameManagerServiceTests.java.

اختبار تنفيذ GAME_LOADING

لاختبار تنفيذ وضع GAME_LOADING، استخدِم android.gamemanager.cts.GameManagerTest#testSetGameContext. يتحقّق هذا الاختبار مما إذا كان GameManager::setGameContext() مع سياق isLoading يُشغّل وضع تحميل الألعاب على Power HAL في وضع الأداء.