Bumble Nickolay Chameyev Dec 11, 2020

How we achieved a 6x reduction of ANRs - Part 1: Collecting Data

Article Summary

Bumble's Android app was bleeding users to ANR dialogs. Their ANR rate sat above Google Play's threshold, threatening search rankings and user trust.

Bumble's engineering team formed a dedicated squad to tackle their Application Not Responding crisis. This deep dive reveals how they built the data infrastructure needed to understand and fix ANRs at scale.

Key Takeaways

Critical Insight

Bumble achieved a 6x reduction in ANRs by first building robust tracking through custom tooling, web scraping, and internal crash analytics integration.

Part 2 reveals which specific code changes delivered the actual 6x improvement after all this data collection groundwork.

About This Article

Problem

Bumble's Badoo app was hitting an ANR rate of 0.47%, which exceeded Google Play's threshold. This risked search ranking penalties and user churn. When the main thread blocks for 5+ seconds, users see an 'Application Not Responding' dialog.

Solution

Nickolay Chameyev's team used the ANR-WatchDog library to build a watchdog thread that monitors the main thread for freezes. They then fed the data into Gelato, their internal crash analytics tool. This gave them better filtering and the ability to run A/B test comparisons.

Impact

The team combined Google Play scraping with Selenium, custom watchdog detection, and Gelato integration to find that Application.onCreate was a bottleneck. After optimizing it, they hit their goal of a 6x ANR reduction.