[null,null,["最后更新时间 (UTC):2025-07-26。"],[],[],null,["# Best practices for ADPF\n\nThe [Android Dynamic Performance Framework (ADPF)](/games/optimize/adpf) helps developers\nproactively manage device thermals and performance by letting games interact\nwith the system, receive thermal insights (like predicted headroom), and\ninfluence behavior. Intelligent adaptation using ADPF prevents severe throttling\nand enables smoother, longer gameplay. This guide provides practical strategies\nto use ADPF effectively. It focuses on custom, granular scaling tied\ndirectly to your game's specific quality settings and driven by ADPF thermal\ndata. By implementing these practices, you can proactively manage thermalsand\ncreate games that perform better for longer-which results in a more reliable\nand enjoyable experience for players.\n\nCustomize performance scaling\n-----------------------------\n\nDefault ADPF plugin scaling might target generic engine presets, for example,\nLow, Medium and High. If your game uses unique graphic quality options that are\ndifferent from these defaults, the plugin's assumptions won't match your\ncontent. You must customize ADPF logic to directly control your game's specific\nquality settings for effective thermal management, rather than relying on\nmismatched defaults. Create fine-grained scaling logic using ADPF data for\nbetter results:\n\n- **Identify key levers**: Profile your game to find which graphics or gameplay features (shadows, resolution, particles, effects, view distance) most impact performance and heat.\n- **Develop granular steps**: Define small, incremental adjustments for individual settings within your game's quality options. Gradually apply these changes based on thermal feedback from ADPF (for example, utilizing thermal headroom data) to gently ease pressure on the system before severe throttling occurs.\n\nYour browser doesn't support the video tag. Rendering problem with ADPF in [Unity MegaCity Metro](https://github.com/Unity-Technologies/megacity-metro/tree/demo/vulkan).\n\nThe preceding video shows a rendering problem with ADPF in\n[Unity MegaCity Metro](https://github.com/Unity-Technologies/megacity-metro/tree/demo/vulkan). Because ADPF adjusts the view distance based on a\ngeneral game engine range, rather than a range suited for the specific game\ncontent, the view distance becomes excessively low when the device heats up,\nwhich causes an issue where buildings are no longer visible.\n\nIsolate graphics settings\n-------------------------\n\nAvoid drastic preset changes. Adjusting individual graphics settings\nindependently provides finer control and a smoother experience when responding\nto thermal conditions. Here are some tips when adjusting settings:\n\n- **Prioritize impact**: Focus scaling efforts on settings within your quality options having the most significant thermal or performance impact identified during profiling.\n- **Decouple settings**: Modify settings like shadows, resolution, and particles independently and sequentially as needed.\n- **Smooth transitions**: Where feasible, transition visual settings gradually over a few frames to be less jarring.\n\nCheck how [Netmarble used the ADPF to optimize \"Game of Thrones: Kingsroad\"](/stories/games/netmarble-got-adpf).\nThey implemented dynamic resolution scaling and adaptive frame rate adjustments.\n\nProvide user control\n--------------------\n\nSome players prefer consistent visuals over dynamic adjustments. Offer an option\nto disable ADPF-driven scaling:\n\n- **Implement an option**: Add a clearly labeled setting (for example, \"Enable Dynamic Performance Adjustment\") in your graphics menu.\n- **Explain the choice**: Briefly describe that it enables automatic quality adjustments for smoother performance and thermal management.\n- **Define behavior**: When enabled (recommended default), your custom ADPF scaling logic runs. When disabled, the game uses only the user's manually selected settings and ignores thermal data for scaling.\n\nTest across devices\n-------------------\n\nAndroid hardware varies significantly in thermal capacity and performance. Test\nthoroughly across different device types:\n\n- **[Define device tiers](/games/distribute/guide-launch-game)**: Test on representative high-end, mid-range, and low-end devices from various manufacturers and SoC vendors.\n- **Test thermal response**: Observe how different devices handle load and how effective your ADPF logic (and the user toggle) is on each tier.\n- **Validate performance targets**: Ensure the game meets performance goals on each tier with ADPF active, and behaves predictably when disabled.\n- **Gather feedback**: Use beta programs to collect performance and thermal data from diverse real-world devices.\n\nMonitor performance and iterate\n-------------------------------\n\nImplementing ADPF requires ongoing monitoring and refinement to balance\nsustained performance, thermal limits, and visual quality:\n\n- **Establish baselines and targets**: Define acceptable performance (target FPS, frame times) and measure behavior without ADPF logic first.\n- **Use profiling tools**: Regularly use the Android Studio Profiler, GPU vendor tools, and in-game overlays to track FPS, frame times, and ADPF thermal data during gameplay.\n- **Experiment and tune**: Test different ADPF response strategies. Adjust how quickly and aggressively settings scale based on thermal input to find the optimal balance for your game.\n- **Test long sessions**: Ensure testing includes extended playtime (15+ minutes) to observe sustained load performance and thermal stabilization with ADPF active."]]