Halving the Crash Rate of the Airbnb App
summary
A native Skia crash on Android 8.1 and 9.0 causes 46% of Airbnb app crashes by double-destroying a shader when two cleaners run for the same native pointer. Reproduced with a small multithreaded test app (reflection + concurrent Canvas.draw using the same Paint), traced to non-thread-safe Shader.getNativeInstance and a static shared Paint used in a Glide transformation. Fix: make the Paint instance per transform, which reproduces locally and reduces crashes to near zero in released builds, proving the root cause and solution.
AI-written summary · about
chapters (4)
related talks
42mAndroid Graphics: the Path to [UI] Riches
34mLearn from developers: Duolingo and Headspace share their new Android architecture stories
35mSnapshot testing (and more!) with Paparazzi
41mLessons Learned from React Native
16mAndroid Graphics
19mDebugging without a Stacktrace: Using Android Studio’s Performance Monitors
40mAndroid Graphics Performance
32mOptimizing Android games performance
