Fredric Newberg

Embrace - CTO

Talk Title

How the Android Framework Monitors, Processes, and Triggers ANRs






10:40 > 40 min


on Twitter

Here’s everything you wish you knew about ANRs. This is your opportunity to get a wider picture of ANRs so you can better understand how your code is resulting in frozen user experiences. After all, there’s a lot more to eliminating ANRs than just preventing the main thread from being blocked for 5 seconds. Google Play Console stack traces frequently point to code that was not responsible, which leads to endless dead ends and frustration. In addition, the Android documentation does not spell out all the time thresholds that cause ANRs to be triggered at the OS level. We’ll take a deep dive into how ANRs are monitored, processed, and triggered at the OS level, providing mobile engineers with a better understanding of how they can protect their apps from ANRs: -How the OS triggers ANRs in Activities, Services, BroadcastReceivers, and ContentProviders -What data is collected by the OS for each type of ANR -Why Firebase Crashlytics and Google Play Console display different ANR data -What are the different approaches to detecting ANRs in production -Embrace’s approach to solving ANRs via stack trace flame graphs

Speaker Bio

Fredric Newberg, Co-Founder and CTO of Embrace:
Fredric has great experience in building backend systems to handle the high data volumes that mobile game analytics platforms require. He was a founding engineer at Kontagent (now Upsight), a large-scale mobile analytics platform for top game developers. He designed and built backend systems that handled 1500 applications, 250M monthly active users, and 150B events each month for customers around the globe. He then was a founding engineer at Rave, one of the top social graph toolkits for mobile game developers. Rave handled Pokemon Go’s launch in 2016.