An Android app crashes whenever there's an unexpected exit caused by an
unhandled exception or signal. An app that is written using Java or Kotlin
crashes if it throws an unhandled exception, represented by the
Throwable class. An app that is written using machine code or C++ crashes
if there's an unhandled signal, such as SIGSEGV, during its execution.
Android vitals metrics and thresholds
Android vitals can help you monitor and improve your app's crash rate. Android vitals measures several crash rates:
- Crash rate: The percentage of your daily active users who experienced any type of crash.
User-perceived crash rate: The percentage of your daily active users who experienced at least one crash while they were actively using your app (a user-perceived crash). An app is considered to be in active use if it is displaying any activity or executing any foreground service.
Multiple crash rate: The percentage of your daily active users who experienced at least two crashes.
A daily active user is a unique user who uses your app on a single day on a single device, potentially over multiple sessions. If a user uses your app on more than one device in a single day, each device will contribute to the number of active users for that day. If multiple users use the same device in a single day, this is counted as one active user.
User-perceived crash rate is a core vital meaning that it affects the discoverability of your app on Google Play. It is important because the crashes it counts always occur when the user is engaged with the app, causing the most disruption.
Play has defined two bad behavior thresholds on this metric:
- Overall bad behavior threshold: At least 1.09% of daily active users experience a user-perceived crash, across all device models.
- Per-device bad behavior threshold: At least 8% of daily active users experience a user-perceived crash, for a single device model.
If your app exceeds the overall bad behavior threshold, it is likely to be less discoverable on all devices. If your app exceeds the per-device bad behavior threshold on some devices, it is likely to be less discoverable on those devices, and a warning may be shown on your store listing.
Android vitals can alert you in the Play Console when your app is exhibiting excessive crashes. You can also view crash stack traces in Android vitals.
For information on how Google Play collects Android vitals data, see the Play Console documentation.