Tracking app responsiveness at scale using JankStats
summary
Bit Drift integrates the Jetpack library JankStats in production to collect per‑frame callbacks (a single listener) and the library’s isJank flag, then categorizes frames by duration into slow (<700ms), frozen (700ms–5s) and ANR (>5s). Implementation notes: durations vary by API level (different fields for UI vs render vs GPU threads) and callbacks may run on main or background threads. Aggregation uses janky‑frames/total‑frames ratios and percentiles like P90/P99 and surfaces session exemplars for focused debugging.
AI-written summary · about
chapters (11)
- 0:00Introduction
- 1:27What is JankStats
- 4:00Why jank matters
- 6:27Tracking janky frames
- 8:52Janky frame definitions
- 12:25API level differences
- 15:10User context in jank
- 17:18Aggregating jank data
- 20:11Analyzing jank in Bit Drift
- 21:57How JankStats works
- 24:03Q&A
related talks
28mChasing 60 FPS: Frame Time Profiling in Jetpack Compose
44mAndroid Benchmarking and other stories
33mAndroid Benchmarking and other stories
43mNo More Jank: Escaping the Matrix of Frame Drops
40mMonitor App performance using Jetpack Benchmark
21mWanna get rid of UI Jank?
01h 03mMonitoring Performance on Massive Games.
06mFrozen Frames in React Native
