Drawn out: How Android renders
summary
Choreographer fires at ~60Hz and the UI thread handles input, animations, measure/layout and draw, producing a DisplayList which is synced to a native render thread (introduced in Lollipop) that turns it into DLOps, applies reordering/batching and uses the damage rect to avoid work (this once saved ~1ms of GPU time, important inside a 16ms frame). Window composition uses a buffer queue (producer/consumer) and SurfaceFlinger asks the Hardware Composer which layers can be overlays versus need GPU compositing; prefer SurfaceView over TextureView when possible.
AI-written summary · about
chapters (12)
- 0:00Intro
- 2:40Render thread
- 3:34Example
- 4:58Invalidation
- 8:43Syncing information
- 11:13DLOps
- 14:28Clip Reject
- 20:57Surface compositor
- 24:04Surface API
- 24:55Surface Texture
- 26:50Producers
- 28:16Hardware Composer








