التدخلات في "وضع الألعاب"

التدخلات في وضع الألعاب هي تحسينات خاصة بالألعاب يضبطها المصنّعون الأصليون للأجهزة (OEM) لتحسين أداء الألعاب التي لم يعُد المطوّرون بحاجة إلى تحديثها. على سبيل المثال:

  • استخدام تغيير حجم المخزن المؤقت للخلف في WindowManager.
  • استخدام ANGLE بدلاً من برامج تشغيل GLES الأصلية.

يمكنك طلب الدعم في اللعبة وإدارة Game Mode API، إذا أردت أن تلغي تدخلات وضع اللعبة التي يقدّمها المصنّع الأصلي للجهاز.

تتوفّر واجهة برمجة التطبيقات Game Mode API والتدخلات على:

يمكن لكل لعبة إجراء ما يلي:

  • تنفيذ سلوك واجهة برمجة التطبيقات Game Mode API
  • اقتراح إعدادات التدخلات في "وضع الألعاب" على المصنّعين الأصليين للأجهزة
  • إيقاف تدخلات "وضع الألعاب" صراحةً

خلفية

يستعرض هذا القسم إجراءات تدخلات "وضع الألعاب" وكيفية تحسين لعبتك لكل وضع.

تغيير حجم التخزين المؤقت الخلفي في WindowManager

يمكن أن يؤدي تدخل تغيير حجم المخزن المؤقت للخلف في WindowManager إلى تقليل الحِمل على وحدة معالجة الرسومات في الجهاز. ويمكنه أيضًا تقليل استهلاك بطارية اللعبة عند لعبها بعدد لقطات مستهدَف في الثانية.

قد يؤدي تفعيل تغيير الحجم إلى تقليل استخدام وحدة معالجة الرسومات بنسبة تصل إلى% 30 و% 10 من إجمالي استخدام طاقة النظام. قد تختلف النتائج بناءً على الجهاز المستخدَم والظروف البيئية وعوامل أخرى، مثل المعالجة المتزامنة.

أثناء استخدام وحدة معالجة الرسومات، يمكن أن يكون عدد اللقطات في الثانية أعلى في الألعاب التي لا تستخدم وتيرة الإنفاق نفسها.

ننصح بشدة بأن تكون جميع الألعاب ذات إيقاع جيد، لأنّ معدّلات عرض الإطارات غير المتساوية تؤثّر بشكل كبير في كيفية تقدير المستخدمين للأداء.

تقييد عدد اللقطات في الثانية

تقييد عدد اللقطات في الثانية في Android هو تدخل في وضع الألعاب يساعد في تشغيل الألعاب بعدد لقطات أكثر ثباتًا في الثانية لتقليل استهلاك البطارية. وتتوفّر هذه العملية في نظام التشغيل Android 13 أو الإصدارات الأحدث. لمزيد من المعلومات، يُرجى الاطّلاع على نظرة عامة حول تقييد عدد اللقطات في الثانية.

تقييم تدخلات وضع اللعبة

ويستخدم هذا القسم الأمر adb.

إعداد الأوضاع

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

<?xml version="1.0" encoding="UTF-8"?>
<game-mode-config
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:supportsBatteryGameMode="false"
    android:supportsPerformanceGameMode="false"
/>

(اختياري) الاحتفاظ بنسخة احتياطية من إعدادات الجهاز الحالية

بالنسبة إلى هواتف Pixel أو أجهزة أخرى، قد يتضمن الجهاز إعدادًا مسبقًا للتدخّل في اللعبة. يمكنك الاستعلام عن الإعدادات باستخدام الأمر:

adb shell device_config get game_overlay <PACKAGE_NAME>

إذا عرض طلب البحث null، عليك تجاهل الإعدادات الحالية. بخلاف ذلك، قم بحفظه وإعادة ضبطه عليه بعد التقييم.

تقييم التدخلات

لتقييم تأثير تغيير حجم المخزن المؤقت للخلف في WindowManager من تلقاء نفسه، استخدِم الأمر التالي لضبط قيم مختلفة لتغيير حجم المخزن المؤقت في WindowManager عبر أوضاع اللعبة.

adb shell device_config put game_overlay <PACKAGE_NAME>
mode=2,downscaleFactor=0.9:mode=3,downscaleFactor=0.5

في المثال أعلاه، mode=2 هو "الأداء" وmode=3 هو "توفير شحن البطارية". تم تحديد قيمة downscaleFactor كنسبة مئوية تنطبق على إعداد تغيير الحجم (على سبيل المثال، 0.7 هي 70% و0.8 هي 80%). تغيير الحجم بنسبة 90٪ (0.9) قليل تقريبًا، في حين أن 50٪ (0.5) كبيرة.

تحذير: قد لا يتم تغيير حجم العمليات الثانوية بشكل صحيح في Android 12. وعلى وجه الخصوص، تأكد من أن نخب والنوافذ المنبثقة تظهر بشكل صحيح. ننصحك بضبط إعدادات تغيير الحجم على 70% على الأقل.

بعد إعداد الحدود الجديدة لتغيير الحجم، يمكنك التبديل بين أوضاع اللعبة لمعرفة مدى تأثُّر لعبتك بتدخل تغيير حجم التخزين المؤقت في WindowManager:

adb shell cmd game mode [standard|performance|battery] <PACKAGE_NAME>

احرص على إعادة تشغيل اللعبة بعد كل اختيار لأوضاع اللعبة. يتطلب تدخل تصغير الحجم إعادة تشغيل التطبيق.

إيقاف التدخلات

يمكنك التحكّم في ما إذا كان التدخل مطبّقًا على لعبتك من خلال إيقافه. ولكل تدخل إعداد خاص به لإيقاف العملية.

  1. إنّ ملف XML نفسه المستخدَم للتحكّم في الموافقة والإيقاف في "أوضاع الألعاب" يُستخدم أيضًا لإعدادات التدخل:
<?xml version="1.0" encoding="UTF-8"?>
<game-mode-config
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:allowGameDownscaling="false"
    android:allowGameFpsOverride="false"
/>
  1. يُرجى إعادة إنشاء لعبتك وإعادة إرسالها لإيقافها.

بشكل تلقائي، سيتم استخدام التدخلات التي يحددها المصنّعون الأصليون للأجهزة (OEM) ما لم يتم صراحةً إيقاف استخدام لعبتك فيها.

المراجع

للحصول على مزيد من المعلومات حول قياس أداء الألعاب وتحسينه: