Application Not Responding (ANR) errors are a critical issue that plague Android engineers. Not only do they create a poor user experience, but they negatively impact an app’s Google Play Store ranking, reducing its discoverability and commercial success.
Worse yet, while Google is happy to penalize apps for their ANRs, they aren’t doing much of anything to help mobile engineers resolve the issues for which they’re penalized.
To help Android engineers build better mobile experiences, we’re adding to our industry-leading ANR Reporting tools and are excited to introduce a first-of-its-kind feature to the market.
Embrace users can now see near-identical Google Play Console ANR data directly in their Embrace dashboards, thanks to Google’s new Application Exit Info API.
Combining GPC data with highly-precise stack trace sampling, and method-level analysis features, makes Embrace’s toolset a must-have resource for mobile engineers that care about solving ANRs for good.
Read on to learn more about this exciting new release.
Embrace reports ANRs using Google’s AEI API
As part of our feature revamp, Embrace now presents a list of ANRs that very closely matches those reported by the Google Play Console. We do this by including a new tab on the ANRs summary page called “Google AEI data.” AEI refers to Android’s new “Application Exit Info” API, an API that allows developers to extract the reason behind an app’s exit, whether that’s a native crash, a dependency disappearing, or an ANR.
Many mobile engineers look to GPC ANR stats as a north star for performance and health, and in leveraging this API, Embrace users can now see information about the exact ANR exits that Google itself would report to GPC. We then showcase that mirrored data in our own Embrace dashboard.
Users can then click into any of the AEI-scraped ANR issues listed and quickly troubleshoot them with Embrace’s industry-leading ANR tooling.
We accomplish this by correlating the data provided from Google’s AEI API, with the ANR data the Embrace SDK captures during the same time interval, within the same user session. By capturing more granular data than the Google Play Console, Embrace creates a much richer picture of what’s happening in the call stack during an ANR’s life cycle. For example, Embrace starts capturing a stack trace as soon as the main thread is blocked for 1 second.
We also continue capturing stack traces every 100 milliseconds until the ANR resolves, meaning that we supply engineers with potentially hundreds, or even thousands, of stack trace samples, making it easier to analyze the pattern of an ANR, and with incredible precision. In fact, it’s these many samples of stack traces that fuel our flame graphs and method troubleshooting tools. When users navigate from an AEI reported ANR to the Embrace correlated ANRs view, they can dive deeper into the individual ANRs that we’ve captured and begin analyzing it at the method level.
Additional insights and troubleshooting capabilities
In addition to this major feature upgrade, we’ve also added some helpful insight and troubleshooting features to our ANR Reporting tool.
Our Google AEI Data view includes a specialized insights panel. Click on any AEI-scraped ANR and this panel will provide insights about the method on which it’s grouped, such as why this type of issue happens and what it’s typically caused by.
Users will also be able to click into a full stack trace of any of these AEI ANRs, just as they can with Embrace-captured ANRs. They’ll also be able to navigate to a full User Timeline of a session where this ANR occurred.
Additionally, we’ve added a new ANR Stats page for initial exploration. This is a great place for engineers to start digging into their ANR trends, as it highlights when ANRs are overrepresented among certain operating systems, app versions, devices, and even geolocations.
Solve the toughest ANRs with Embrace
Integrating Google Play Console ANR and Embrace data makes it easier than ever to focus on the most critical ANRs impacting your app’s ranking, and resolve them with highly-granular analytics.