Przykładowy kod wyświetla stan termiczny urządzenia za pomocą interfejsu ADPF
getThermalHeadroom
API i interfejsu thermal status
API. Aplikacja dynamicznie zmienia też obciążenie na podstawie marginesu temperaturowego oraz interfejsu Performance Hint Manager API, aby kontrolować wydajność wątku renderowania.
Ćwiczenia z programowania
W tym kursie Codelab Integrating Adaptability Features Into Your C++ Game znajdziesz proste instrukcje, które pomogą Ci zintegrować funkcje adaptacyjne z Twoją grą. Po zakończeniu tego warsztatu będziesz mieć za sobą integrację tych funkcji i lepiej poznasz ich działanie:
Thermal API: odczytuje stan termiczny urządzenia i zareaguje, zanim urządzenie wejdzie w stan ograniczenia termicznego.
Interfejs API trybu gry: poznaj preferencje optymalizacji gracza (maksymalizacja wydajności lub oszczędzanie baterii) i odpowiednio dostosuj ustawienia.
Game State API: informuje system o stanie gry (wczytywanie, rozgrywka, interfejs użytkownika itp.), dzięki czemu system może odpowiednio dostosować zasoby (przyspieszyć operacje wejścia/wyjścia lub procesor, procesor graficzny itp.).
Interfejs Performance Hint API: podaj systemowi informacje o modelu wątkowania i obciążeniu, aby mógł odpowiednio przydzielić zasoby.
Rysunek 2. Infografika z ćwiczeniem z Codelab dotyczącą ADPF
Historie programistów
W tych historiach sukcesu deweloperów możesz się dowiedzieć, jak deweloperzy gier zwiększyli stabilność liczby klatek na sekundę i zoptymalizowali zużycie energii dzięki interfejsom API Adaptability.
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-07-26 UTC.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 2025-07-26 UTC."],[],[],null,["# Sample, Codelab and Developer Stories\n\nSample App\n----------\n\nThe [ADPF sample app](https://github.com/android/games-samples/tree/main/agdk/adpf)\ndemonstrates the basic use of the ADPF API.\n**Figure 1.** ADPF Demo Game Application\n\nThe sample displays the device's thermal status using the ADPF\n[`getThermalHeadroom`](/reference/android/os/PowerManager#getThermalHeadroom(int))\nAPI and the [thermal status](/reference/android/os/PowerManager.OnThermalStatusChangedListener)\nAPI. The app also dynamically changes the workload based on the Thermal headroom\nand the [Performance Hint Manager API](/reference/android/os/PerformanceHintManager)\nto control render thread performance.\n\nCodelab\n-------\n\nThe [Integrating Adaptability Features Into Your C++ Game](/adaptability-codelab)\ncodelab guides you to integrate ADPF features into your game with simple steps\nthat you can follow at your own pace. At the end of the codelab, you will have\nintegrated the following features and will better understand their\nfunctionalities:\n\n- [Thermal API](/games/optimize/adpf#thermal): listen to device thermal condition and react before the device falls into thermal throttling state.\n- [Game Mode API](/games/optimize/adpf/gamemode/about-API-and-interventions): understand player's optimization preference (maximize performance or preserving battery) and adjust accordingly.\n- [Game State API](/reference/android/app/GameState): let the system know the state of your game (loading, playing, UI, etc) and the system can adjust resources accordingly (boost I/O, or CPU, GPU, etc).\n- [Performance Hint API](/reference/android/os/PerformanceHintManager): let the system know your threading model and workload so that the system can allocate resources accordingly.\n\n**Figure 2.**ADPF Codelab Infographic\n\nDeveloper Stories\n-----------------\n\nCheck out how game developers increased their FPS stability and optimize their\npower consumption using Adaptability APIs in these developer success stories!\n\n- [Kakao Games increased FPS stability to 96% through Android Adaptability](/stories/games/kakaogames-adaptability)\n- [Gameloft reduces device power consumption by 70%, resulting in 35% longer play time with the Game Mode API](/stories/games/gameloft-gamemode)\n- [Android Game Development Kit (AGDK) update: Adaptability and performance features](https://www.youtube.com/watch?v=_-FwUrQAsVg)\n- [GDC Vault - Google Developer Summit: Improving Game Performance with Android Dynamic Performance Framework](https://www.gdcvault.com/play/1029174/Google-Developer-Summit-Improving-Game)\n- [MediaTek enhances dynamic performance of Android SoCs](/stories/games/mediatek-adpf)\n- [NCSoft Lineage W improves sustained performance and prevents thermal throttling by using ADPF](/stories/games/lineagew-adpf)\n- [ARM getting started with Android Dynamic Performance Framework (ADPF) in Unreal Engine](/stories/games/arm-adpf)\n- [Netmarble Games: Optimizing Performance with ADPF](/stories/games/netmarble-got-adpf)"]]