Gry na Androida są przeznaczone głównie do korzystania na urządzeniach zasilanych bateryjką, takich jak telefony czy tablety. Zoptymalizuj zużycie energii przez grę, aby użytkownicy mogli grać dłużej i z większym komfortem rozpoczynać sesję gry, nawet gdy ich urządzenie nie jest w pełni naładowane.
Używaj optymalnej częstotliwości odświeżania ekranu.
Częstotliwość odświeżania wyświetlacza to szybkość, z jaką panel wyświetlacza urządzenia może zmieniać się, aby wyświetlać nowe informacje. Tradycyjnie urządzenia przenośne używały częstotliwości odświeżania 60 Hz, aktualizując zawartość wyświetlacza 60 razy na sekundę. Nowoczesne urządzenia często mają wyświetlacze o wyższej częstotliwości odświeżania, która może wynosić 90 Hz lub 120 Hz. Wyższa częstotliwość odświeżania zapewnia płynniejsze działanie podczas wykonywania takich czynności jak przewijanie, ale zwiększa zużycie energii przez panel wyświetlacza.
W przypadku gier docelowa liczba klatek wynosi zwykle 30 lub 60 na sekundę. Jeśli częstotliwość odświeżania wyświetlacza jest wyższa niż docelowa częstotliwość klatek gry, wyższa częstotliwość odświeżania nie przyniesie żadnych korzyści, a jedynie zwiększy zużycie energii. Na urządzeniach o wysokiej częstotliwości odświeżania dostosuj częstotliwość odświeżania wyświetlacza tak, aby jak najbardziej zbliżyć ją do docelowej liczby klatek na sekundę w grze.
Integracja lub włączenie biblioteki Swappy do dostosowania tempa wyświetlania klatek
Pakiet Android Game Development Kit (AGDK) zawiera bibliotekę do ustalania interwału klatek o nazwie Swappy. Swappy optymalizuje częstotliwość odświeżania wyświetlacza urządzenia, aby jak najlepiej dopasować ją do częstotliwości klatek gry. Jeśli używasz niestandardowego silnika do tworzenia gier, zapoznaj się z biblioteką Frame Pacing Library, aby dowiedzieć się, jak zintegrować ją z silnikiem.
Swappy jest już zintegrowany z silnikiem Unreal (Frame Pacing for Mobile Devices) i Unity (PlayerSettings.Android.optimizedFramePacing) oraz optymalizuje częstotliwość odświeżania wyświetlacza, jeśli jest włączona w projekcie gry.
Wywoływanie interfejsu API Androida do określania liczby klatek
Zamiast integrować bibliotekę do dostosowania szybkości wyświetlania klatek, możesz użyć interfejsu Android Frame Rate API, aby bezpośrednio dostosować częstotliwość odświeżania ekranu.
Używanie interfejsu Vulkan API do obsługi grafiki
Android obsługuje 2 interfejsy API grafiki: starszy OpenGL ES i nowszy Vulkan. Vulkan jest obecnie głównym interfejsem API do obsługi grafiki na Androidzie i jest wydajniejszy niż OpenGL ES. Więcej informacji o zaletach i użyciu Vulkana znajdziesz w artykule Korzystanie z Vulkana do generowania grafiki.
reagować na warunki termiczne urządzenia,
Wysokie wykorzystanie procesora i GPU powoduje wydzielanie ciepła. Sprawność energetyczna spada, gdy urządzenie się nagrzewa. Jeśli urządzenie się przegrzewa, zmniejsza szybkość procesora i procesora graficznego, aby zmniejszyć zużycie energii i doprowadzić do jego ostygnięcia. Takie działanie, nazywane ograniczeniem ze względu na temperaturę, wpływa na wydajność gry i szybkość rozładowywania baterii. Korzystaj z interfejsu API dotyczącego temperatury w Androidzie, aby monitorować stan termiczny urządzenia i dostosowywać obciążenie gry w celu zapobiegania ograniczaniu wydajności z powodu temperatury.
Wysyłanie zapytania do trybu gry urządzenia
Tryb gry to funkcja, która pozwala użytkownikowi określić preferencje dotyczące tego, czy ma zrezygnować z wydajności na rzecz czasu pracy na baterii, czy z czasu pracy na baterii na rzecz wydajności, czy też ma wybrać neutralne ustawienie domyślne. Jeśli Twoja gra obsługuje różne konfiguracje wydajności, użyj interfejsu Game Mode API, aby sprawdzić te ustawienia i odpowiednio zmodyfikować ustawienia gry.
Dodatkowe materiały
Profilowanie wydajności w Android Studio
Przykładowy kod demonstrujący energooszczędność w Unity (GitHub)