Android game optimization

Android optimization tools and APIs are designed to find performance bottlenecks and determine device limitations while maximizing performance at sustainable levels for games and graphic-intensive apps.

  • Android GPU Inspector (AGI): An Android system profiling tool that provides advanced GPU tracing and analysis for games and graphic intensive apps.

  • Android Performance Tuner (APT): Find performance issues related to quality settings, scenes, load times, and device models in your game.

  • Android Dynamic Performance Framework (ADPF): Optimize games based on the dynamic thermal, CPU, and GPU management features of each device.

  • Memory Advice API: Provide memory use estimates and threshold notifications to your game so it can stay at optimal levels that avoid LMKs.

  • Game Mode API: Optimize gameplay by prioritizing characteristics, such as performance or battery life based on user settings or game-specific configurations.

  • Perfetto: Collects system-wide performance information and displays it in a web-based UI.

  • Systrace: Records system activity and generates reports that help identify performance issues.

  • CPU Profiler: Inspect your app's CPU usage and thread activity, either in real time or from recorded traces.

  • Meminfo class: Records a snapshot of your app's memory allocation. You can also use this feature through the meminfo dumpsys command.

  • Bug report: View device logs, stack traces, and other diagnostic information to help you find and fix bugs in your app.

  • R8: Shrink, optimize, and obfuscate your app's Java- and Kotlin-based code and resources to reduce DEX size, improve startup performance, and minimize runtime memory overhead.

  • R8 Configuration Analyzer: Inspect and optimize your R8 keep rules to identify overly broad configurations from your app or third-party libraries, improving code shrinking, obfuscation, and DEX size for your game's Java- and Kotlin-based dependencies.

  • Baseline Profiles: Improve startup times and reduce launch-phase jank by providing ART with ahead-of-time (AOT) compilation specifications for your game's Java- and Kotlin-based code paths, such as launcher activities and SDK initialization.

  • Macrobenchmark: Measure and test high-level app performance, such as cold startup timing and post-startup operations, in automated test environments or CI, and generate Baseline Profiles for your game.