Unblocking The Main Thread: Solving ANRS and Frozen Frames
summary
Defines slow render as >60 ms, frozen frame as >700 ms and ANR as >5 s and shows concrete fixes: replace heavy vectors with WebP and async image loading via Coil, consolidate encrypted SharedPreferences because each instance costs ≈300 ms, share thread pools to cut thread count from 180 to 130, use coroutines with well placed dispatcher switches, run LeakCanary and LeakCanary Plumber to find framework leaks, enable R8 which yields ~25% faster hotspots and add baseline profiles for ~30% startup gains.
AI-written summary · about
chapters (12)
- 0:00Introduction
- 3:39Slow rendering and frozen frames
- 8:20Memory pressure and GC
- 11:12Memory leaks and lifecycle
- 16:05Threading solutions and pools
- 21:10Code optimization with R8
- 23:37Image loading and vector drawables
- 25:23Dependency injection pitfalls
- 32:09Play Store reports and profiles
- 35:01Performance measurement and ANRs
- 37:11Performance optimization retrospective
- 38:57Q&A
related talks
12mUnderstanding and debugging ANR's (Android Not Responding)
28mOptimizing and Profiling UI Performance
37mUI profiling in examples. Where is my bottleneck?
33mUI profiling in examples. Where is my bottleneck?
45mHigh performance in Android
28mChasing 60 FPS: Frame Time Profiling in Jetpack Compose
44mThe ViewModel Performance Trap:When State Management Bites Back
40mAndroid high performance baby
