Stay organized with collections
Save and categorize content based on your preferences.
To prepare your environment for debugging and optimizing Android games, get
access to the following tools that help you analyze CPU usage and graphics
calls.
CPU
Use the following tools to evaluate and improve your game's CPU performance:
Meminfo: Collects memory statistics to show how much
PSS memory
was allocated and the categories for which it was used. Use the command
adb shell dumpsys meminfo package-name or the
MemoryInfo call.
Perfetto: Collects performance and memory information on a device and
displays it in a web-based UI. Perfetto
supports arbitrarily long traces so you can view how RSS changes over time.
Enable long traces from the
System Tracing app.
bugreport: Shows if your game crashed because it ran out of memory or if
it was killed by the
LMK. Use the
command adb bugreport bugreport-name or go to
Developer Options > Bug report.
Graphics
Use the following tools to evaluate and improve your game's display pipeline:
Android GPU Inspector (AGI): A GPU profiling tool. You can take traces
of your games and find interesting performance insights to help you make
graphics optimization decisions. Learn more
here.
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2023-08-15 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2023-08-15 UTC."],[],[],null,["# Tools for optimizing your game\n\nTo prepare your environment for debugging and optimizing Android games, get\naccess to the following tools that help you analyze CPU usage and graphics\ncalls.\n\nCPU\n---\n\nUse the following tools to evaluate and improve your game's CPU performance:\n\n- **Systrace:** Records CPU and disk activity over a short period of time. [Access this tool from the command line](/topic/performance/tracing/command-line), or [use the on-device tool](/topic/performance/tracing/on-device) that's available when running Android 9 (API level 28) or higher. Also see the [overview of system tracing](/topic/performance/tracing).\n- **CPU Profiler:** Inspect your game's CPU usage and thread activity, either in real time or from recorded traces. See documentation on [how to access and use the CPU Profiler](/studio/profile) within Android Studio. A [standalone version of this profiler](/studio/profile#standalone-profilers) that doesn't require a Gradle project at launch is installed with both [Android Studio](/studio) and the [Android Game Development Extension](/games/agde).\n\nMemory\n------\n\n- **Meminfo:** Collects memory statistics to show how much [PSS memory](/topic/performance/memory-management#calculating_memory_footprint) was allocated and the categories for which it was used. Use the command `adb shell dumpsys meminfo `\u003cvar translate=\"no\"\u003epackage-name\u003c/var\u003e or the [`MemoryInfo`](/reference/android/os/Debug.MemoryInfo) call.\n- **Perfetto:** Collects performance and memory information on a device and displays it in a web-based UI. [Perfetto](https://docs.perfetto.dev) supports arbitrarily long traces so you can view how RSS changes over time. Enable long traces from the [System Tracing app](/topic/performance/tracing/on-device).\n- **bugreport:** Shows if your game crashed because it ran out of memory or if it was killed by the [LMK](/topic/performance/memory-management#low-memory_killer). Use the command `adb bugreport `\u003cvar translate=\"no\"\u003ebugreport-name\u003c/var\u003e or go to **Developer Options \\\u003e Bug report**.\n\nGraphics\n--------\n\nUse the following tools to evaluate and improve your game's display pipeline:\n\n- **Android Frame Pacing API:** Helps synchronize your game engine's rendering process with Android's display pipeline. [Download from the Android Open Source Project (AOSP)](https://android.googlesource.com/platform/frameworks/opt/gamesdk/), or [access the plugin from Unity 2019.2.0 Alpha 6](https://unity3d.com/unity/whats-new) or higher. Also [see documentation for the Android Frame Pacing API](/topic/performance/frame-pacing).\n- **Android GPU Inspector (AGI):** A GPU profiling tool. You can take traces of your games and find interesting performance insights to help you make graphics optimization decisions. [Learn more\n here.](/agi)\n\nAdditional resources\n--------------------\n\n- [Improve your game's performance](/games/optimize)\n- [GAPID](https://gapid.dev)"]]