view to pixel
summary
Explains exactly how a View becomes pixels: input → animation → measure → layout → draw runs on the main thread choreographed by Choreographer and Looper, with a hard budget of 16 ms per frame at 60 Hz and Android using triple buffering. Shows the actual plumbing: WindowManager requests a surface from SurfaceFlinger / BufferQueue, GPU via OpenGL and the Hardware Composer composes buffers, Canvas calls become GLES commands, and recommends using the GPU overdraw and GPU profiling tools plus FrameMetrics (Android N+) to find and fix jank.
AI-written summary · about
chapters (13)
- 0:00Introduction
- 1:01Yoga and smooth apps
- 3:33CPU GPU and display
- 6:02VSYNC and frame timing
- 10:20Frame rendering process
- 13:55Window manager and surfaces
- 20:43Creating a frame
- 22:06Choreographer and UI thread
- 26:21View traversal and drawing
- 28:11Canvas layers and overdraw
- 33:13Canvas primitives and shaders
- 37:53Rendering paths and OpenGL
- 38:37Profiling tools overview
related talks
37mFrom View to Pixel
38mGPU. The journey from code to pixel
36mDrawn out: How Android renders
51mHow Android Rendering Works ...
16mAndroid Graphics
33mUI profiling in examples. Where is my bottleneck?
32mA Skeptics Guide to Programmatic Views on Android
51mMeasure, Layout, Draw, Repeat: Custom Views and ViewGroups
