This page describes the tools you can use to measure performance metrics.
To profile boot timing, use the
bootanalyze tool. For each specific product, modify the
config.yaml file to include events you want to search for.
should appear as follows:
stop_event: <logcat log message which will terminate log collection after reboot> events: event1_name: <pattern that matches log message> event2_ ...
On some devices, booting the clock may display an incorrect time for the first few seconds. While
the bootanalyze tool can accommodate a time correction out-of-the-box, you can provide an optional
time correction pattern in
Optimizing boot times explains how to improve boot
time using components such as Bootloader, Device Kernel, I/O tuning, Boot animation, and the
App start-up time
Users expect apps to be quick to load and responsive. App Startup Time details the internals of the launch process and discusses how to profile and optimize startup performance.
User interface (UI) performance testing ensures that your app meets functional requirements and that user interactions with your app are smooth, run at a consistent 60 frames per second (see Android Performance Patterns: Why 60fps?), and all without dropping or delaying frames.
For more information, see Test UI Performance and JankTest.
You can inspect app memory usage in one of two ways:
- Over time, using
- Snapshot in time, using
For details, see:
- To measure memory usage, see View Memory Allocations.
- To use the Android Studio IDE to inspect memory, Android Studio provides a GUI-based memory usage tool. For details, see View the Java Heap and Memory Allocations with Memory Profiler.
- To conduct performance instrumentation and tracing on the Linux, Android, and Chrome platform and in user-space apps, use open source Perfetto.
Central processing unit
The notes below list tools you can use to query the CPU.
- To profile Android applications and native processes running on Android, use
a native central processing unit (CPU) profiling tool for Android. Simpleperf can profile Java and
C++ code on Android. The Simpleperf executable can run on Android releases later than L and Python
scripts can be used on Android releases later than N.
Simpleperf is part of the Android Open Source Project. The source code is located at Simpleperf. For details, see the Simpleperf documentation.
- To inspect your app's CPU usage and thread activity in real time while interacting with your app, use the CPU Profiler. Doing so has many advantages, such as providing a faster and smoother user experience and preserving device battery life. In addition, you can inspect the details of recorded method, function, and system traces.