تحسين أداء الألعاب

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

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

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

اكتشاف وضع الطاقة والإشعار به

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

وضع الطاقة GAME

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

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

game-mode

الشكل 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 بأنّ اللعبة في حالة تحميل، ما يتيح لـ 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، يمكن للمصنّعين الأصليين للأجهزة اختيار تنفيذ مجموعة من الإجراءات التالية:

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

اختبار تنفيذ وضع GAME

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

اختبار تنفيذ وضع GAME_LOADING

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