Focused reading

ANR and Main-Thread Stall Review

ANRs are the freezes users describe as “the app died” even when no fatal exception fired. Mixing them into crash charts hides the main-thread work that actually froze the frame.

Person holding a smartphone with both hands against a soft interior background

This review exists because crash dashboards treat ANRs as a second-class bucket. We read the traces as traces: who held the main thread, whether a binder call sat waiting, whether a receiver did network work during boot.

Malaysian device mixes make some ANRs look worse than they do on a fast flagship. A ContentResolver query that is merely sluggish on a new Samsung can freeze input dispatch on a mid-range Xiaomi still running an older API. The brief names that skew when the traces show it.

Who this is for

Teams whose Play Console shows ANR rate climbing while fatal crash rate looks acceptable — common after adding a heavy splash, a new maps SDK, or a WebView that waits on the main thread.

What you receive

A ranked list of ANR signatures with likely stalls (disk on main, binder, broadcast, input dispatch) and a note on which OEM skins stretch the same code into a freeze.

Scope

ANR traces for one application ID over the last twenty-eight days. Fatal crashes are acknowledged only when they share a signature with an ANR.

Included

  • ANR trace grouping by stack head and input vs execution
  • Notes on main-thread I/O, ContentProvider, and BroadcastReceiver patterns that appear in the traces
  • OEM overlay where freezes concentrate on one skin
  • A written brief and a forty-five minute readout

Not included

  • Full crash clustering
  • Rewriting startup or splash architecture
  • Systrace capture on your production users’ devices

How the work runs

  1. Trace intake

    You send Play Console ANR exports or bugreport snippets. We confirm version codes and whether StrictMode is already on in debug.

  2. Signature pass

    Stacks are grouped. Frozen input dispatch is separated from slow lifecycle work.

  3. Brief

    You receive a short document, not a crash audit pack, and a focused call.

Preparation

ANR exports, mapping files for the affected versions, and a description of recent SDK additions.

Constraints

We cannot reconstruct an ANR that Play never uploaded. Very new releases may need a few days of vitals before clustering is honest.

Ask about an ANR review