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.
Meminfoclass: Records a snapshot of your app's memory allocation. You can also use this feature through thememinfo dumpsyscommand.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.