Mobile Development 10 min read

Android Application Performance Testing: Memory Leak Detection and UI Lag Analysis

This article explains common Android performance problems such as high battery consumption, slow startup, memory leaks, and UI jank, and provides step‑by‑step methods using Android Studio, MAT, GPU rendering analysis, FPS Meter, and command‑line tools to locate and resolve these issues.

Baidu Intelligent Testing
Baidu Intelligent Testing
Baidu Intelligent Testing
Android Application Performance Testing: Memory Leak Detection and UI Lag Analysis

Background Android apps often suffer from excessive battery drain, slow launch times, memory leaks, and UI jank, which degrade user experience and therefore require systematic performance testing.

Memory Leak Detection Use the MAT (Memory Analyzer Tool) to analyze heap dumps. Prepare a rooted development device, open Android Studio → Tools → Android Device Monitor → DDMS, select the app package, click Update Heap , run the test, then click Cause GC and Dump HPROF file . If the dump is generated by DDMS, MAT can open it directly; otherwise convert it with the hprof-conv tool (e.g., ./hprof-conv input.hprof output.hprof ). In MAT, examine the Histogram, Dominator Tree, and GC Roots to identify leaking objects, especially in Activities and Fragments, and keep the ProGuard mapping file for accurate analysis.

UI Lag (Jank) Analysis The main causes are CPU and GPU resource consumption. Aim for 60 fps (frame time < 16 ms). Use the Android developer option "GPU Rendering" to display a bar chart of frame times. Green lines represent the 16 ms target; blue lines show the time spent building the DisplayList; red lines indicate the time the GPU spends rendering; orange lines reflect CPU‑GPU synchronization delays. Long bars indicate frames that exceed the target, causing visible jank.

Command‑Line Profiling Run adb shell dumpsys gfxinfo <package_name> > fps.txt to export frame timing data, then analyze the "Profile data in ms" columns (Draw, Process, Execute) in a spreadsheet to calculate total GPU time and identify bottlenecks.

FPS Meter Tools The third‑party app FPSMeter (requires root) displays real‑time FPS, max/min/average values. Disable the HW overlay in developer options for accurate measurements.

Additional Methods Create a simple view with a single moving dot and measure how many times it is drawn per second (ideal 60 fps). Android Studio also provides a built‑in GPU monitor that plots frame rendering time over execution time.

Typical Troubleshooting Checklist

Excessive memory usage and frequent GC pauses.

Time‑consuming operations on the main thread (e.g., heavy logging, I/O).

Over‑rendering due to deep view hierarchies or frequent animations.

Complex view creation or dynamic layout inflation causing long layout passes.

Future topics will cover power consumption testing, network traffic analysis with tcpdump/Wireshark, weak‑network simulation using clumsy, and tracing tools such as Traceview and Systrace.

mobile developmentAndroidperformance testingMemory LeakFPSGPU Profiling
Baidu Intelligent Testing
Written by

Baidu Intelligent Testing

Welcome to follow.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.