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

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

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

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

رصد وضع توفير البطارية والإشعار به

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

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

يشير وضع الطاقة الجديد 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 بحالة اللعبة ذات المستوى الأعلى. بعد إعلام طبقة تجريد الأجهزة (HAL) الخاصة بالطاقة بحالة تحميل اللعبة، يمكنها ضبط إعدادات الأداء في النظام الأساسي ومعدّل سرعة وحدة المعالجة المركزية، ما يؤدي إلى تحسين أوقات التحميل.

للإشارة إلى أنّ إحدى الألعاب يتم تحميلها، يستخدم تطبيق اللعبة "لوحة بيانات الألعاب" لضبط حالة isLoading في "إدارة الألعاب". ينقل Game Manager هذه الحالة إلى خدمة Game Manager، التي تستخدم setPowerMode مع وضع الطاقة الجديد GAME_LOADING لاستدعاء خدمة Power Manager. يشير 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، يمكن لمصنّعي المعدات الأصلية اختيار تنفيذ مجموعة من الإجراءات التالية:

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

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

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

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

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