التدخلات في "وضع الألعاب" هي تحسينات خاصة بالألعاب تحدّدها الشركات المصنّعة الأصلية للأجهزة (OEM) لتحسين أداء الألعاب التي لم يعُد المطوّرون يحدّثونها. مثلاً:
- استخدام تغيير حجم ذاكرة التخزين المؤقت الخلفية في WindowManager
- استخدام ANGLE بدلاً من برامج تشغيل GLES الأصلية
يمكنك أن توفّر في لعبتك واجهة برمجة التطبيقات Game Mode API وإدارتها لتلغي تدخلات "وضع الألعاب" التي يوفّرها المصنّع الأصلي للجهاز.
تتوفّر واجهة برمجة التطبيقات Game Mode API والتدخلات على:
- أجهزة Android 12 المحدّدة
- الأجهزة التي تعمل بالإصدار Android 13 أو إصدار أحدث
يمكن لكل لعبة إجراء ما يلي:
- تنفيذ سلوك واجهة برمجة التطبيقات لميزة "وضع الألعاب"
- اقتراح إعدادات التدخلات في "وضع الألعاب" على المصنّعين الأصليين للأجهزة
- إيقاف التدخلات في "وضع الألعاب" صراحةً
خلفية
يوضّح هذا القسم الإجراءات التي تتّخذها ميزة "وضع الألعاب" وكيفية تحسين اللعبة لكل وضع.
تغيير حجم ذاكرة التخزين المؤقت الخلفية في 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>
احرص على إعادة تشغيل اللعبة بعد اختيار كل وضع لعبة. يتطلب التدخل لخفض الدقة إعادة تشغيل التطبيق.
إيقاف التدخلات
يمكنك التحكم في ما إذا كان سيتم تطبيق تدخل على لعبتك من خلال إيقاف هذا الخيار. ولكل تدخّل إعداد إيقاف خاص به.
- يتم أيضًا استخدام ملف الإعدادات 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"
/>
- أعِد إنشاء لعبتك وأعِد إرسالها لإيقاف هذه الميزة.
سيتم تلقائيًا استخدام الإجراءات التي تحدّدها الشركات المصنّعة الأصلية للأجهزة ما لم تختار إيقاف استخدامها في لعبتك صراحةً.
المراجع
لمزيد من المعلومات عن قياس أداء اللعبة وتحسينه:
أدوات تحليل النظام: لتحليل استخدام وحدة المعالجة المركزية وطلبات الرسومات
Android GPU Inspector: رسومات الملف الشخصي على Android
مكتبة تنسيق الإطارات لنظام التشغيل Android: تساعد ألعاب OpenGL وVulkan في عرض سلس وعرض الإيقاع المناسب للإطارات.
Android Performance Tuner: يمكنك قياس عدد اللقطات في الثانية والرسومات وتحسينهما على أجهزة Android على نطاق واسع.
أداة تحليل الطاقة: يمكنك معرفة المواضع التي يستهلك فيها تطبيقك قدرًا أكبر من اللازم.