When scrolling occurs, the system attempts to draw the next frame at a fixed cadence; any noticeably longer draw interval will be perceived by users as a “stutter” or “jitter.” These momentary long frames are the source of “dropped frames.” Scrolling is the most cadence-sensitive scenario, because backgrounds, text, and images are continuously moving; once the beat becomes unstable, the eye immediately notices.
Offline Trace aims to reconstruct the frame timing of a scrolling interaction, tie “which segment dropped frames” to “why it dropped,” and produce actionable fixes. For Trace capture, see Record Trace and ensure the capture covers the full scrolling time window and realistic scroll speed.
In the Trace webpage, frame render time labels were added at the start of Choreographer#doFrame (currently Android only). These labels display dropped-frame situations throughout the entire system render process. By observing these labels, you can visually identify render-time anomalies. Frame render time is computed by summing the time spent in Choreographer#doFrame on the UI thread and DrawFrames on the RenderThread. If the total is ≥ 32 ms, the label is red; if the total is ≥ 16 ms and < 32 ms, the label is orange; if the total is < 16 ms, the label is green. For offline analysis, treat frames marked red or orange as the tasks most likely causing dropped frames and analyze them preferentially.
Canvas drawing. Symptom: a single frame’s computation time is unusually long and repeats with scroll.GPU or RenderThread queues back up, correlated with image size or count.