This page describes the tools you can use to measure performance metrics.
Boot time
To profile boot timing, use the
Simpleperf
documentation.
config.yaml
file to include events you want to search for. config.yaml
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 config.yaml
.
Optimizing boot times explains how to improve boot
time using components such as Bootloader, Device Kernel, I/O tuning, Boot animation, and the
SELinux policy.
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
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.
Memory
You can inspect app memory usage in one of two ways:
- Over time, using
procstats
. - Snapshot in time, using
meminfo
.
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
You can use the following tools to query the CPU.
- To profile Android apps and native processes running on Android, use Simpleperf documentation. 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.
- 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.
Simpleperf documentation. For details, see the Simpleperf documentation.