تقویت عملکرد برای بازی‌ها

از 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 در Android 14 به خدمات مدیر انرژی نشان می‌دهد که کاربر درحال بازی کردن است. وقتی Power HAL از حالت GAME مطلع می‌شود، می‌تواند درحین بازی کردن، مصرف برق را برای بهبود عملکرد، کاهش دما، و افزایش عمر باتری تنظیم کند.

شکل زیر جریان اطلاعات به Power HAL را برای نشان دادن حالت قدرت GAME توضیح می‌دهد:

حالت بازی

شکل ۱. جریان اطلاعات برای نشان دادن اینکه بازی درحال انجام است.

حالت قدرت GAME همیشه برای برنامه‌هایی با appCategory GAME در AndroidManifest.xml تنظیم می‌شود.

حالت مصرف انرژی GAME_LOADING

حالت تقویت بارگیری با تشخیص زمانی که برنامه بازی در حالت بارگیری است و اطلاع دادن به Power HAL کار می‌کند. ‫Android 13 وضعیت بازی جدیدی به‌نام isLoading را در میانای برنامه‌سازی کاربردی ویژه توسعه‌دهندگان معرفی می‌کند. این وضعیت بازی از حالت جدید GAME_LOADING قدرت در «سرویس مدیر قدرت» برای مطلع کردن «لایه انتزاع سخت‌افزار قدرت» درباره وضعیت بازی سطح بالا استفاده می‌کند. وقتی «لایه انتزاع سخت‌افزاری قدرت» از وضعیت بارگیری بازی مطلع شود، می‌تواند تنظیمات عملکرد پلاتفرم و نرخ ساعت CPU را تنظیم کند که منجر به بهبود زمان بارگیری می‌شود.

برای نشان دادن اینکه بازی درحال بار شدن است، برنامه بازی از «داشبورد بازی‌ها» برای تنظیم وضعیت isLoading در «مدیر بازی» استفاده می‌کند. «مدیر بازی» این وضعیت را به «سرویس مدیر بازی» منتقل می‌کند، که از setPowerMode با حالت جدید GAME_LOADING مصرف برق برای فراخوانی «سرویس مدیر برق» استفاده می‌کند. حالت مصرف برق GAME_LOADING به Power HAL نشان می‌دهد که بازی در وضعیت بار کردن است تا Power HAL بتواند تقویت بار کردن را ارائه دهد.

شکل زیر جریان اطلاعات از برنامه به Power HAL را برای نشان دادن وضعیت بارگیری توضیح می‌دهد:

درحال بار کردن-بهینه‌ساز

شکل ۲. جریان اطلاعات برای نشان دادن اینکه بازی در وضعیت بارگیری است.

داشبورد بازی به کاربران امکان می‌دهد ویژگی «بهینه‌سازی بار کردن» را با «تنظیم عملکرد» روشن یا خاموش کنند. «تنظیم عملکرد» همیشه به‌طور پیش‌فرض خاموش است.

سفارشی‌سازی 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 حالت بار کردن بازی را در «لایه انتزاع سخت‌افزاری قدرت» در حالت عملکرد فرا می‌خواند یا نه.