Poprawa wydajności i zarządzanie temperaturą są niezbędne do tworzenia udanych gier na Androida. Deweloperzy musieli do tej pory rozwiązywać te problemy przez zmniejszenie wierności odwzorowania lub dalszą optymalizację renderera. Zmiany te są zwykle związane z konkretną grą i często nie można ich zmienić.
Kilku uczestników ekosystemu Androida oferuje deweloperom interfejsy API dostosowania wydajności. Aby uprościć integrację funkcji adaptacyjnej wydajności i zmniejszyć fragmentaryzację w ekosystemie, Google i MediaTek współpracują przy integracji naszych rozwiązań: Android Dynamic Performance Framework (ADPF) i MediaTek Adaptive Gaming Technology (MAGT).
ADPF umożliwia deweloperom dostosowywanie obciążenia związanego z grą na podstawie danych o temperaturze w czasie rzeczywistym oraz dostarczanie wskazówek systemowi operacyjnemu, aby zoptymalizować wydajność pod kątem bieżącego obciążenia. Za pomocą tych sygnałów możesz dostosować ustawienia jakości i wydajności, takie jak rozdzielczość, liczba klatek na sekundę, a nawet strategia ładowania zasobów. Dzięki temu możesz lepiej zrównoważyć wydajność, temperaturę i wierność odwzorowania, zapewniając graczom na Androidzie jak najlepsze wrażenia. Ekosystem Androida korzysta z tej technologii w wybitny sposób. Deweloperzy gry Ares z Kakao Games mogli zwiększyć stabilność liczby klatek na sekundę do 96%, dostosowując obciążenie w czasie działania w odpowiedzi na interfejs Thermal API.
MediaTek jest wiodącym dostawcą układów SoC na Androida. Firma produkuje wiele rodzajów układów scalonych, takich jak nowy Dimensity 9300. MediaTek udostępnia też pakiet MAGT SDK, który jest dostępny od 2021 r. Pakiet SDK udostępnia zaawansowane funkcje do dostrajania wydajności na procesorach MediaTek SoC, takie jak szczegółowe informacje o wydajności w czasie rzeczywistym i wskazówki dotyczące zwiększania obciążenia. Oprócz udostępniania MAGT deweloperom MediaTek zaczął oferować ulepszone możliwości ADPF.

Zapobieganie ograniczaniu ze względu na temperaturę za pomocą ADPF i optymalizowanie wydajności
MediaTek zezwala platformie ADPF na dostęp do temperatur bieżącego i docelowego urządzenia, aby zapobiec poważnemu ograniczaniu przepustowości. Dzięki funkcji ADPF
getThermalHeadroom()
aplikacje mogą uzyskać szacowany dostępny margines termiczny, zanim urządzenie zacznie poważnie ograniczać wydajność. Dzięki tej ocenie aplikacje mogą dynamicznie dostosowywać obciążenia, aby zapobiec uruchamianiu przez urządzenie funkcji ograniczania, co poprawia ogólne wrażenia użytkownika.
Aplikacja (na przykład demo Boat Attack w Unity) korzysta też z interfejsu API Wskazówki dotyczące wydajności w sesji, aby optymalizować wydajność.
Udostępnia on docelowy czas renderowania klatki i bieżący czas renderowania klatki dla każdej klatki odpowiednio za pomocą funkcji updateTargetWorkDuration()
i reportActualWorkDuration()
. Platforma MediaTek oblicza obciążenie między dwoma wywołaniami reportActualWorkDuration()
i przydziela odpowiednią moc procesora, aby zapewnić ukończenie obciążenia w określonym czasie.
Dzięki temu platforma MediaTek zapewnia optymalną liczbę klatek na sekundę (FPS) przy zrównoważonym zużyciu energii, co gwarantuje płynne działanie.
Włączanie wyższej liczby klatek, mniejszego zużycia energii i dłuższych sesji grania
Ogólnie w demo gry Boat Attack w Unity zwiększyliśmy liczbę klatek na sekundę o 8,5 FPS, zmniejszyliśmy zużycie energii o 12% i wydłużyliśmy czas rozgrywki o 25 minut lub więcej. Odchylenie standardowe liczby klatek na sekundę spadło o 25%. Dzięki tak znacznej poprawie możesz zwiększyć wierność swoich gier i przedłużyć czas sesji grania bez przegrzewania urządzenia.


Nawet bez dostosowywania ustawień wierności, tylko dzięki włączeniu sesji wskazówek dotyczących wydajności udało się zmniejszyć średni czas renderowania wątku o prawie 10%.
Co dalej z adaptacyjną wydajnością w procesorach MediaTek SoC
W najbliższych latach ADPF zostanie ulepszony o nowe funkcje i nowe funkcje niezależne od urządzenia z MAGT. Deweloperzy, którzy chcą jeszcze lepiej wykorzystać swoje urządzenia MediaTek, mogą skorzystać z pakietu MAGT SDK zawierającego zaawansowane funkcje przeznaczone specjalnie dla architektury chipsetów MediaTek. Wkrótce udostępnimy też główne funkcje ADPF.


Pierwsze kroki z Androidem
Dynamiczny interfejs API Androida do pomiaru wydajności jest teraz dostępny dla wszystkich deweloperów gier na Androida, którzy korzystają z silników gier Unity, Unreal i Cocos Creator, a także w naszych natywnych bibliotekach C++.
- Deweloperzy Unity mogą zacząć od usługi dostawcy skuteczności w ramach kampanii o dostosowywaniu skuteczności w wersji 5.0.0. Pamiętaj, że interfejs Thermal API jest obsługiwany przez większość urządzeń z Androidem w wersji 11 (poziom interfejsu API 30) i interfejs Performance Hint API w wersji 12 (poziom interfejsu API 31).
- Deweloperzy Unreal mogą zacząć od wtyczki Unreal Engine do dynamicznego działania na Androidzie, która działa na większości urządzeń z Androidem 12 (poziom interfejsu API 31) lub nowszym.
- W przypadku Cocos Creator możesz zacząć od interfejsu Thermal API w wersji 3.8.2, a interfejsu Performance Hint API w wersji 3.8.3.
W przypadku tych silników gier interfejsy API dotyczące temperatury są zintegrowane z systemem Adaptive Performance, aby ułatwić pobieranie informacji o temperaturze urządzenia. Interfejs API dotyczący wskazówek dotyczących wydajności jest wywoływany automatycznie co Update()
lub Monitor()
bez konieczności wykonywania dodatkowych czynności.
W przypadku niestandardowych silników możesz skorzystać z naszego przykładowego kodu C++ dla ADPF.
Dodatkowe materiały
Dowiedz się, jak Dynamiczny interfejs wydajności Androida może pomóc Ci w ustabilizowaniu liczby klatek na sekundę w grze i zmniejszeniu throttlingu termicznego.
Dowiedz się więcej o technologii MediaTek Adaptive Gaming Technology, która umożliwia zaawansowane dostrajanie wydajności na procesorach MediaTek SoC.