The device most of our players own is not the device on our desks. It has a mid-range chip, a full storage partition and eleven apps in the background - and it is the one that matters.
Variance is what people feel
A dropped frame every few seconds reads as jank far more strongly than a lower but stable rate. We measure the ninety-fifth percentile frame time, not the average.
The usual culprits
- Allocating inside the frame loop, then paying for garbage collection
- Layout work that could have been done once
- Decoding images on the main thread
- Overdraw from stacked opaque backgrounds
Test on the real floor
We keep a shelf of genuinely cheap phones. An emulator on a workstation will happily tell you everything is fine.
Budget the frame
At thirty frames per second you have thirty-three milliseconds for everything. Writing that number down changes how people argue about features.