Stop 09 · Mobile TestingTopics · 7/8

Mobile Performance Testing Basics

Part of the QA Testing Roadmap

In short

People forgive a lot, but not an app that takes five seconds to open or drains half their battery. On mobile, slow and greedy apps get uninstalled.

Checking app launch time, responsiveness, memory usage, and battery consumption — mobile users have particularly low tolerance for slow or resource-draining apps.

The purple blob in a helmet sits on a parked scooter checking the fuel gauge.

Think of it like this

Checking your scooter's pickup and mileage

A good scooter starts on the first kick, picks up fast and doesn't drink petrol. You'd notice if it took ages to start or emptied the tank in a day. Launch time, smoothness and battery use are an app's pickup and mileage.

Watch it happen

Five things to measure

Launch
Screen load
Scrolling
Memory
Battery

1/5Cold start: time from tapping the icon to a usable first screen, measured with the app fully closed.

The big ideas

What you need to know

Cold vs warm start

Cold start launches from scratch. Warm start resumes from memory. Measure both separately.

Test on budget phones

Lots of real users have budget phones. A slow phone shows problems a flagship hides.

Built-in profilers

Android Studio Profiler and Xcode Instruments show CPU, memory, network and energy use.

Repeat and compare

Run each measurement several times and compare builds. One reading means little.

See it in code

Walk through the code

bash
1# Cold start time: force stop, then launch and wait2adb shell am force-stop com.example.shop3adb shell am start -W -n com.example.shop/.MainActivity4 5# Memory used by the app right now6adb shell dumpsys meminfo com.example.shop7 8# Frame rendering stats after you scroll a list9adb shell dumpsys gfxinfo com.example.shop10 11# Reset battery stats before a 30-minute session12adb shell dumpsys batterystats --reset

1/4Force stop guarantees a cold start, then -W waits and reports launch time.

Replace com.example.shop with your app's package name. am start -W prints TotalTime in milliseconds.

Save yourself the pain

Common mistakes

Oops

Measuring launch time once on a flagship phone and calling it fast.

Do this instead

Measure several times, on a budget device, with a cold start each time.

Oops

Ignoring slow memory growth because nothing crashed during a short test.

Do this instead

Run a long session and watch the trend. Leaks show up over time.

Your mission

Time a cold start

~30 min

Quick check

Why force-stop the app before measuring launch time?

Go deeper

  1. 1Measure a sample app's launch time and note if it feels acceptable to a real user.
  2. 2Learn basic mobile profiling tools available for iOS and Android.
  3. 3Understand why mobile performance issues often correlate directly with poor app store ratings.

More topics at this stop

Stuck on this topic? Ask an Insider

Get 1:1 guidance from people who've walked this exact path — on the InsideEdge app.

Download
InsideEdge