ALY HUNG: Hi, everyone.
I am Aly from the Android Developer Relations Engineer
Team.
As you may know, stability and performance
are very critical metrics for your mobile apps.
Exhibiting bad behavior in Vitals
will negatively affect the user experience in your app.
It's also likely to result in bad rating
and poor discoverability on the Play Store.
For that reason, we would like to share with you
a series of videos focusing on the tools and techniques you
can use to understand, troubleshoot, and then improve
your app vitals.
Today, I'm going to talk about Android Vitals on Google Play
Console.
The first thing we want to say is a Google effort
to help you monitor your app quality.
Let's get started.
Android Vitals is an initiative by Google
to improve the stability and performance of Android apps
and devices.
When an [INAUDIBLE] end user runs your app,
the Android device logs various metrics.
The Google Play Console aggregates this data
and display it in the Android Vitals dashboard.
The dashboard highlights the crash rate, ANR rate,
stuck wake locks, and excessive wakeups.
They are the core vitals developers
should skip attention to.
For this video, I will focus on the two most important vitals,
crash rate and ANR rate.
These are the most common issues faced by users,
and have a large impact on the user experience
as they will be unable to use their apps.
So, what are crash and ANR?
They are [INAUDIBLE] the app stability.
A crash is an unexpected exit.
When an app crashes, Android terminates the app's process
and display a dialog to let the user the know that the app has
stopped, as shown in the left.
In this situation, user needs to restart the app
and start everything again from scratch.
When the UI thread of an Android app is blocked for too long,
an application not responding [INAUDIBLE] error is triggered.
Users sees that the UI is not updated
as they interact and, therefore, feel that the app does not
respond to them.
If the app is in the foreground, the system
display a dialog for the user, as shown in the right.
The ANR dialogs gives the user the ability
to force quit the app or you can keep waiting for it.
Either way, the issue is blocked user from using the app,
and usually forces them to restart it.
As mentioned, crash and ANR have high importance,
with the Play Console defining a specific category on them.
This tab gives you an overview about the crash and ANR rate,
as well as the top issues.
You can easily filter these issues
by app version, Android version, time periods, and device model.
It helps you to narrow your search
and find the right issues to work on.
If you click on one of the issues,
Google Play Console will show you a detailed view of an ANR
or crash.
Here, you can find out information about
the [? chain ?] [? that ?] the issue,
the most affected app version, Android version, and device.
Again, you can always apply filters
to see all the metrics for a specific target.
The best practice here is focusing on the top impact
issue.
You can filter the ANR and crash list by the latest app version
and then examine issues with the highest occurrences.
Doing that allows you to have a full view
of the impacted devices and OS to help
you to reproduce the issue.
More importantly, the detailed view
lets you deep dive into the stack choice, which offers
the full log about the issue.
Studying the log would help you identify the root cause
and catch the APIs or library causing the issue.
Depending on the root cause, there
will be different steps you can follow to fix it.
Here are a few recommendations from us.
If the logic codes are an issue, with a specific class
method or [? light ?] number in your code,
this is a straightforward situation.
You should focus on locating the part of the code causing
the issue and fix it.
You can use the same device model and OS
to try to reproduce the issue if possible.
Furthermore, you should work with your team
to implement QA and testing processes
to cover your code for each feature
and avoid the future issues.
We have another video sharing about QA and testing processes.
You can follow our video description for more details.
In the situation where the issues come from third party
libraries you are using, we suggest
that you upgrade to the latest version
or revert to the last stable version.
This depends on which version you are using.
Additionally, it's a good idea to check the official forum
of the library.
Usually, the library developer will
share the list of known issues and you
may be able to find a work around for your issues.
Lastly, the issues could come from the game
engine you are using.
Similar to the third party libraries,
we would suggest you to stay on the latest stable version
of the engine or seek the support from the engine forum,
community, or the engineers.
Thank you for joining us today.
Do subscribe and catch the rest of the series, which
would cover testing tools, techniques, and processing
to improve your app quality.
I hope to see you soon.