Jamie Lynch

Embrace, Mobile Architect

Talk Title

How the Android Framework Monitors, Processes, and Triggers ANRs






09:50 > 40 min


on Twitter

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.

In this presentation, 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

Speaker Bio

Jamie Lynch lives in Manchester, England, and has been developing Android applications for over 8 years. He currently is a Mobile Architect at Embrace, where he builds cool features for their Android/iOS/Unity/React Native SDKs. He previously worked at Bugsnag, where he developed their open-source Android error reporting SDK. His claims to fame include creating the smallest Android APK in the world (678 bytes), moderating the AndroidDev subreddit, and creating json2kotlin, a tool which generates Kotlin source files from JSON.