Fergus is a product manager on Google Play responsible for improving the experience of Android users around the world. Previously he worked in Google Research on the Assistant and Waze Carpool. Prior to Google he founded & sold a mobile app startup in Silicon Valley. He has a Masters from MIT in EECS and a BE in EE from UCC, Ireland.View the profile
Wojtek is an Android developer advocate who works closely with the Android Studio team to provide outreach on new Studio and Tools releases and framework features. He enjoys looking for ways to make apps more usable, mostly through better development patterns and code optimizations.View the profile
Joel is a product specialist on the Google Play business development team, where he focuses on the Google Play Console. He helps Google Play business development managers to understand the Console and evangelize its use to their developers. He has worked in a number of roles at Google, all focused on helping mobile app developers succeed. Prior to Google, Joel worked at Zedge, Smithsonian Media and Mercedes-Benz USA. He holds a bachelor's degree in political science and German studies from the University ofView the profile
About the talk
Learn about Android vitals and improved tools in the Play Console and Android Studio to help improve your app quality. This session will explain how app performance impacts key business metrics, such as ratings and engagement, and covers best practices to help fix performance issues in your app.
Good afternoon, everybody and welcome today session is all about a performance. My name is Joel Newman. And I'm a product specialist on the Google Play at this is development team in that capacity. I work with Android developers in all shapes and sizes helping them to leverage the tools available in the Google Play console to build successful at businesses not going to kick things off with a quick reminder of just how important performance is the app business success and why Android vitals could be a critical tool and helping you improve your performance that my colleague Fergus product
manager for Android vitals will join me on stage to talk about some of the ways were enhancing the platform to make it easier to understand and action your performance information. That my colleague wojtek from our developer relations team will come on stage for a technical Deep dive to talk through some of the common causes of performance issues and how to address them finally will wrap things up by talking about some of the resources available Within the play console itself and Beyond to improve your performance and if we have time, we'll try to do a brief Q&A. The first of these important
to remind ourselves of why performance is important intuitive, right? Like we as users nobody wants to deal with an app that crashes frequently or freezes or is janky Play Google Play We have dated a drive home just how important performances we did an analysis of all the reviews on the Google Play Store over the past year and found it when leaving a one-star review over 40% of the time user cited negative performance indicators, like stability and bugs. In fact, this is the number one sided issue within one star reviews on the flip side with leaving five star
reviews over 70% of users mentioned positive performance indicators things like speed design and usability. Why is this important not only are ratings and reviews of direct and leading indicator of customer satisfaction and not only do ratings figure heavily in the Play Store search algorithm. Ratings and reviews correlate strongly with Downstream business kpi things like engagement retention and monetization. A great example of how that performance can impact key business kpi. It comes from this study. We did an analysis of all the games in Google Play
and we compare those with the lowest price rate versus those the highest crash rate and we found apps with the lower crash rate. It's almost 2 and 1/2 minutes more of gameplay per day. And this was even a bigger Trend when we when we looked at a and R's which are more frequently looked over relative to crash rate. We found that users spent almost three minutes more per day in the more stable apps like a ton of time when you look at this over a yearly basis this would translate into 18 hours of additional gameplay per user for games that are played on a daily basis.
Now another reason why performance is incredibly important is that it's becoming an increasingly important important signal within Google Play for both search and Discovery. Google Play is committed to service and surfacing only the highest content to our users were increasingly taking into account performance signals particularly those related to stability and Battery consumption in both our Play Store search algorithm as well as our algorithmically generated recommendations, in addition to that performance signals Factor Heavenly a heavily into our decisions around
are editorially created curated content. This includes are featured new and updated apps collection as well as editors choice and coveted Google Play Awards an Android excellence. If you want your app is this to succeed your app needs to be discovered and Technical performance is an increasing part of that Discovery with in the PlayStore exactly because of that increasing importance of technical performance that we lost Android vitals last year. Android vitals is an initiative. I Googled improve the stability and performance of android devices by surfacing to developers in an
easily understandable and readily accessible weigh the most important performance metrics in battery stability and rendering this comes from over a hundred million users who have opted-in to share the data with Google and with you are Developer partners. And since the program's launch a year ago, it's been an incredible success. We have over a hundred thousand developers including some of the biggest names on the Android platform regularly engaging with titles console to understand their performance issue and and create fixes.
No, it's because of this incredible engagement. We seen some really nice games that an ecosystem level when we compared reviews in the Play Store today versus a year ago before we launched vitals. We see a really nice uptick in those people leaving five star reviews talking about things like speed design and usability, but perhaps more importantly when we look at people leaving one star reviews. We've seen almost 20% decrease in the number of people talking about things like stability and bugs and Battery consumption and that's only possible because of the incredible work that
you have done as a developer Community the up the quality of Android apps. And for those of you who are new to the platform, it's really important that you keep Pace with the rest of the developer Community who is helping us move in a positive performance Direction. No, I think what these games of ecosystem levels are interesting you might wonder as individual developer. Yeah, but how does that really matter to me? Why want to showcase a couple of examples of individual golfers have seen incredible games because of Android vital? One of my favorite case studies is
Starbucks Starbucks is obviously an incredibly popular activity or 15 million downloads on the Google Play Store. They started using Android vitals into several December admittedly several months after the launch of the program and when they started using Android vitals, they were alerted to A&R issues that we're not even on their radar and they were able to use the reporting in the console. Identify common underlying causes for the in ours that were caused by a third-party Library. They remove that third-party library and saw a 70% reduction in A&R rate within a week that he saw a
similar and actually even better experience with crash rate because Android vitals is a platform level tool it's able to detect crashes that were not detected by Starbucks is third-party crash SDK because these crashes were happening at app start before third Starbucks is third-party process TK hadn't even initiated using the vitals reporting they were able Identifying underlying cause Pusha fix and the song 85% reduction in Crash rate within a week. These are impressive stats. Not worth calling out that vitals and it is a common misconception is not just for
absentee equally relevant for games a great example comes from Kill do developers of the super popular Subway Surfers app, which was actually the first game to pass the 1 billion install mark on Google Play Android vitals. They discovered a sudden increase in A&R rate use the reports to identify a cause and put the fixed and saw a reduction of your INR rate from 2% to 2.1% a 95% reduction. But I think it's worth calling out here is what we found afterwards. So we did an analysis to Google Play. What
was the change of Engagement with the app before and after the fix and we saw a really substance game in both daily active users and in session for users across the board and these are just two examples of developers have been able to leverage the platform to see really significant at a performance and a business level product manager for vitals enhancing the platform to make it even more powerful for Developers. Great job. Heron I'm very sorry product manager for Android bios, it's been incredible to see the Improvement the app developers by yourselves have made over the
past year as a result of using the tools we made available. It's also been incredible to get all the feedback from you as to how we could improve on everybody else. I'm really excited to show you the new features we have available today as a result of your feedback to thank you so much. Last year, when we announced on red vials of Joel mentioned, we launched 3 Performance areas battery stability and rendering today. We're not going to new areas startup time and permissions. Battery probably the most important performance are too focused on this is
where you should not unnecessarily use the CPU are the radios on the device which grains develop user batteries, which means they can't use drop Islam. Stability is all about building a robust and reliable application. So that users are using application without freezes are classes. And rendering is all about building as fast and responsive application that silky smooth and doesn't like our stall on users. Which. Of time we're enabling used to be able to provide a quick launching application to users no matter what state you're opposite meaning. There's
three different metrics we have here. I'm going to go through each one. So first we have local start slow here is defined as 5 seconds and more cool star is when your app has not be launched in a while and it's going from activity launched activity running and the top is not a memory. Slow warm start is where it takes two seconds or more for your I have to go from activity launch to activity running is in memory. Final start time at your job is so hot. This is where your ass goes from on restar to activity running and it takes longer than 1.5
seconds this where your app on your activity is in memory. No, the new performance rehab is permissions. This is where we want to help you be able to only request permissions that users think are required for the core value of your application to be provided and if they don't think so, then provide them justification why you think they should actually provide that information? When we asked you there's one of the reasons that you deny permissions for applications, what we find is that the vast majority of them just take the afternoon either permissions. So
really providing a justification. It's critical for you to get you this baby out to give you the information that you need to be at the offer the best functionality possible in your application. In the details view for permission. We provide a breakdown by permission group. So maybe one of your permissions you just think you're out does Nate and you guys a high percentage of acceptance for that one, and then another one you just don't think you need any get a heightened. I already for that one, and maybe you don't need that permission in the first place. So maybe you should rethink
it or maybe just need to explain to you why you're on Judge Me That permission. With many other breakdowns across the BIOS product for most vile we break it down by half version by device and buy Android version for weight loss in wake-ups. We provide for a&rs. We provide by A&R tight end in our name. We also provide add the Clusters view for grouping you're a North together so you can be able to see which ones are similar and be able to do both of those clusters for concerts. We also provide clusters.
When I be building a house on Google and fire to Google one of them's I struggled with the most was being able to understand. How do I compare with other apps that offer similar functionality who else is struggle but understanding if Toronto is performing well compared to other amps. lots of people who share the same struggles iPad We are now going to announce how to relevel benchmarks in the play console. This enables you to be able to see okay, for start time. You can see here that board games are sponsored starting been racing games. We also provide
25th 50th and 75th percentile breakdown for each of the battery level benchmarks Realty fall to the category that you list yourself in the store. So you can select any other category that you want to be able to compare yourself with in case you don't think that you're at his eyes related to knock a tree. On the details page for every vile. We show you this breakdown for the category Benchmark and then you can be able to also see what exact percentage you are relative to the other apps in that category. On the
redesigned Android bios or reface, we show you each of the metrics in the performance area. You show you what was your percentage of use? It impacted in the last 30 days. What was the percentage of used compact it in the previous 30 days and we show you the Benchmark comparison. This enables you to go to quickly COK, which one of these performance areas should I actually look into and which specific metric might require more attention. And so you can see her at the last one to list your in the bottom 12% That's why when you want to invest the weather channel has
been the Early Access partner for these features that were showing today for the past couple of weeks. I'm one of the pieces if you'd like today Pat is this being really great for them to be able to use battery level benchmarks to make the Kate wood in their company. That's why they should invest in performance because they can show how they Stack Up vs. Competing on. I hope you're able to use Tinder dating you has made the case within your company. You want to learn more about benchmarks in the play console? We have a session on tomorrow at 9:30 a.m.
Although all Android bios should be pay it should be viewed as ways to be able to enhance the experience of your application. Some vitals are more important to offering the best user experience possible. And so that's why we're putting this at feature at the top of the Android by the door view page, which is core vials. These are the BIOS. They should pay most attention to these are the ones that will impact your promotability and ranking in the store along with many other signals, but you should really pay attention to these signals. You'll see the list of the BIOS.
Here we have the initials for so stuff Passa wakelocks where you hold a way clock for over an hour in the background. Excessive. Wake up. Swear. You have 10 wake up happening for our Aiden or race where your have an user experience the app not responding for 5 seconds or more and the day and a country where they have one faction today. If you're in the bottom 25% for any of these bad behavior these corbels, then you will be flagged as having a bad behavior. This is where are you? We'll see as child at the top of the core Bio Section to alert you when you
click on that tile you'll be able to go into the details view and see which specific APK is exhibiting that bad behavior and we provided information to help you to bug that issue. One of their major requests avocado is not yours to get alerted when there is an issue that you introduced at with their vitals and still were really happy to announce anomaly detection. So this is where you slide with a nurse at the top of your Android by the section. Are they in Oregon and crash clusters to let you know what is the issue that you have and you can click on that tile and be
able to go in and see details. You can also be as a sign up to get email alerts or when one of these nominees has acted and when you get one of those emails you have is a link directly to the issue so you can be able to investigate. Okay, when did this issue occur? And for how long did it happen? The Big Fish Games team that have bills many games that have reached over 10 million installed have found great results with using these two by being an early access partner for the these features over the past couple months and they reduce the crime rate by 45% for one of their top games. I know
going to hand over to voice text to talk about how you can do both and improve your Corvette with issues. Thank you for good by everyone. My name is Vitex at work on the developer relations team and I work closely with the Android teams are Google to help you developers build better apps and today I want to talk about how you can fix some of these car titles that Fergus mentioned in your apps in your code. And first I want to start with stability and let's talk a little bit about A & R Us. So we keep saying This Acronym write a n RS, but what are they
really not responding events? This happens whenever in your app some running operations blocks your main thread. Now, the main threat is responsible for things like responding to user event, but it stops or rejoin the UI for every frame. So if you if we lock it if the matron cannot do that in a timely manner the Apple just keep frozen and then after a few seconds the system will notice that it will pop up this annoying dialogue user actually close the app and as we really don't want that to happen. So what are some common causes of A&R it's like
what kind of operations can block our main thread? I'll probably the most common ones and our Network and disk operations also called This is congested a remote servers are slow. So can they are flash drives or the file system candy busy with other operations? And so as of all the prayers we should never never do Network or disk operations on the main thread but you know, I just prepared to code examples to show you that it's not always easy to do the right thing. Even though you all probably agree with me we can still make mistakes. So here for example
in my activity on create I decided I'm just going to prepare this shirt preferences objects used later. I'm just going to create it and not do anything with it right now and then somewhere else in my app on a background thread. I'll actually get some information like read an integer or a string or whatever and I thought okay, that's good. I will I will not be doing this operations on the main thread What I didn't realize though is that the invitation of shirt preference is an Android actually eagerly read data from this the moment you create them. So that's that's actually the line
of code that this card says so I was wrong. It's it's not always obvious and let me show you another even trickier example. I'm doing some hypothetical network operations in my blood say I'm I want to check if my intent contain some kind of Euro so I'm comparing the two and then I say I want to open connection to that you are. Oh, I'm going to save the Heather's to some very bold for later use and then actually open an input stream and finally finally in the end. I am reading bites from the network. So this is a pretty complicated and you're supposed to know
if that first line open connection creates the network request and actually box my thread or is it the last one? We're actually request to review no bites of day. App to track speed read them into my application or is it something else and well it's not actually in this example will perform like the first time I'm trying to act as Heather's only then will the connection be open and the first bites will be red. And so as a developer again I say although I didn't know which operation does the network access. But fun fact
on an even older Android version this line just creating a just checking if two year olds are equal can perform network operations. Okay, so why am i showing you all this because I want to convince you that just as sweet kind of know everything and you will use libraries that you don't you're not familiar with or other apis, and that's why I get to use strict mode for your debug builds. Why why you develop your apps is an API that existed on Android for a long time, and it's pretty easy to set up. You just said a thread policy in your application on create or in your activity on create a
new tell strict mode. I want you to detect all discount prices in my application on this thread, and I also want you to detect network operations, and then you tell strict mode what you want the result to be. First of all, of course, we want to see it and then logs so we can be back later. Noisy sometimes so far my dear by the Bell then we're also going to go and say penalty death which will actually crash my app whenever I do the wrong thing and access network or disk on the main thread not like I said, you don't want to do any of that in your production release bills because you
don't want your users out to crash I go back and run my code that I just showed you and look at my logs because my PC crashed and I see the exact cause and I can go and debug that so I can see there was a strict mode disk read violation and I can see in the stack trace. The culprit is preferences called that I did in my activity on create so great. This lets me actually going to stop. Okay, so we covered Network and disk operations and how to catch them. Sometimes you don't even need to hit the remote servers or disc to cause a long-running
operation. All it takes is which we just calculating something for a long time doing a very long Loop and something like that. This example, this is a sample Sudoku game and how it works is when the user opens the app the Sudoku board is actually generated in memory. It's not red from this. It's not cool down from a server somewhere and there's actually a pretty long complex calculus calculation happening to show that first board today is there so they can play it. I'm so it's this one code generator board because I'm doing that on the thread. The first
of all, how am I supposed to know as a developer that this coal generate bored can be long but I suggest that use Android profiler regularly. If you ever suspect there's any performance problem in your app example, I took a CPU trace of the method generate board and the other a profiler and I can immediately see that it's a complex recursive call that takes a long long time to finish and so now I know I should not be running it on the main thread. Oh and by the way, there's a new thing in the end Android profiler that we just released in the country today. Now, you can debug and profile
your app start a time. So that's three, honey. Okay, so going back to our problem with our generate board call. What can I do with it? So strict mode has it has this has been a method of telling it that a call Kennedy slow. So here as a person who created this I will tell strict mode to note this low call and now whoever else touches my cold and is using it and use a strict no as well. If they also set the detect custom slow Kohl's Tranquility again, they will get notified their apple to crash
they will get the log and they will know to never called at generate Buckboard method on the main thread Alright, so what are some other causes of an arse be careful? If you're doing any kind of inter process communication and expect to result don't do it synchronicity on the main thread if you're calling some other application is if that call is leading our process you basically don't control what happens on the other side IBC goes through layers of the operating system. The other process can access network service your request. So just remember to do it on the background thread.
The next thing is multithreaded programming and that's a really really difficult topic. Like we could talk have a whole other session about this. But if you ever find yourself at touching, you know, low level of primitive such as locks and synchronization eventually, there's a high chance you'll create a deadlock in your application or hit some other problem that locks your May threaten to debug. Android vehicles does give you some information that will help you develop these kinds of problems. We actually provide you with a trace file
pulled from the devices that suffered from DJ and ours and so you can look at thread States and see if they were blocked waiting on a resource to become available. And we even highlight the problems that we think I might be happening in this Trace. Okay, then the last thing I want to mention this as a cause of an arse it slow broadcast receiver handling not every developer realizes that if you set a broadcast receiver in your Android manifest, and then it gets cold that the owner of these methods actually happens on the main thread and you know, you're not supposed to perform any
longer running operations in it. And there's a time out about about 10 seconds that the system will allow this message to run and then we'll give you a process and so you don't sometimes though. Whenever you you're using a broadcast receiver and maybe 2 showing notifications to do user. Maybe you still need a little piece of data Maybe from the disc like reading some name or profile picture to show a notification that you actually need to do that this guy access. So what can you do in this case have this method called racing? It's basically a way to tell the receiver
from the unreceived method that you need to do some longer running app. And then you speed up your that separate thread yourself you do the operation. And then remember to call Finish when you're done. If you don't do that, the system will still realize that you're blocking and might potentially kill your app. And remember don't treat this as some kind of long-running service. This is not the case for broadcast receivers and a reasonable time of it still applies. So you should just grab the things you need and the separate thread and finish as soon as possible. Okay, let's talk a little bit about
crashes. And you know, it's really difficult to give general advice on how to avoid crashes in the end in the setting like this because every app will be different every crash will be different. Everybody. Come give you some advice that I think might be helpful. Do you know as for years as an Android developer? I seen that my code or codes for Moto people start start very simple and we release something and then things start crashing of users devices. And so we add all these safety measures like checking for nose everywhere and checking for activity lifecycle. And then if that fails we just
drop everything and just hope that this problem. Been hit too many users, but that's not the greatest solution. Right? It doesn't actually sold the underwriter underlying problem. And that's why it my first piece of advice to you is don't try to reinvent the wheel and use ready to readily available libraries that solves problems that you are developers face. Some of the most difficult parts of Android we heard about it from you from developers. It's pending life cycles, and that's why last year. We released some of the architecture components such as life.
If you model for handling that and also we are least room and and paging components for loading data into your application into your UI components as part of the Android jetpack initiative. This is navigation for handling all kinds of fragmented activity Transitions and navigation problems and the work manager for scheduling work in the background. But you know, you don't have to use components / Google. There are a lot of great third-party libraries out there. And if you think they're useful to you and your application and they will sell your
problems. Feel free to use them as well. Okay, the second thing I want to mention when talking about classes is kotlin also last year that I owe you and I was called in as a first-class supported language for Android developers. And before I said it say anything more. Let me just say that I know it's not a silver bullet. It will not solve all your crashes in your application. However, because of the no safety that's built right into the language. It can save you for some common classes of errors that you might otherwise hit with if you build your apps with just Java and some of the
night other nice things about kotlin is that is highly interoperable with existing Java code so you don't have to go all in and transform all your apps into kotlin you can start slowly adding it into your application and see if it helps you and actually and we are seeing a study update and content usage in Android apps and it's also easy and fun to learn. So I really encourage if you haven't tried yet. It's fully supported by us and you're free to use it in your application. And the last thing about crashes that I want to talk about is private and hidden apis know we offer
an SDK to developers that the back by documentation and basically public methods public interfaces that you can use but developers are finding ways to access methods in the Android framework existing devices. They were never intended for you to use and that's not because we know we don't like you as a little person we don't want you to give you a nice things. It's just because that these apis are not ready to be used or not guaranteed to exist. They might be implementation details on a certain device. We might even remove them on the next Android version or a device manufacturer can go and
customize Android to remove them as well. The thing is you should never use private or hidden apis in your apps, but in order to enforce that and to actually help you make her out apps crash Less in case these apis change we're introducing restrictions and Android Developer preview that means basically if you have to stop using private and hidden apis in your apps, and we did a similar thing in Android nougat with the ndk where we said you can no longer access libraries that exist on the system partition if they're not exposed by public and Decatur apis,
so please if you can migrate from private apis to public apis, there are documented as guaranteed to work to make her apps safer. And the fuck a little bit about battery and Parkway clocks clocks that lets you basically keep the device from entering a deep sleep. So from conserving the the battery and a starquake look at is when you use the API and because of a bug or because you forgot you acquire way, but you never really said so just keeps running and it keeps draining the battery on users devices. So what's the best way to avoid having a
stuck? Wake up in the air? If acacian you can have one if you don't use weight Cox, that's literally the simplest thing sleep in modern Android development. There's rarely a situation when you have to use a white cock if we think about activities, so whenever the user is actually using your app, and for some reason you want to keep the screen on instead of setting a bike lock programmatically just use a flag on the window that will tell the system to keep screen on there's no way to leak it. For services, if you schedule them as Jobs instead of having your custom freerunning Services
the drop schedule or will hold the way cook for you. And so again, you can't you don't have to do that yourself. Similarly with alarm manager if you use it to schedule an alarm in a broadcast receiver. There will be a way cocktails for you for the duration of on receive. So if you don't use wakelocks, you don't even need that permission your manifest and you come, you know, you can't leave them. So that's great. But if you must use our way call if you find a situation where you have to use it remember to always choose a partial wake lock all the other types of white dogs are
deprecated on your Android versions and then acquire so that in case you leave the system will clean up the wake clock for you after the timeout expires. What to give it a tactic descriptive tag without any counters or even worse like private sensitive information. That way we can Surface the name of the wake clock in the Android vitals for you freeze your debugging and then remember to always cold defensively and assume things can go wrong and you know a few things like try and finally dogs to make sure that you were released the way clock as soon as you're
done with it. And the last thing I want to talk about today is excessive wake-ups. And I think the biggest cause for excessive wake-ups is the use of this old old lady. I called alarm manager and it specifically the wake up type of alarms. Let me give you the 3 R's of alarm manager remove calls to wake up alarms if possible reduce the frequency if you have to use them for some reason and if you can replace your alarms with other API such as Firebase Cloud messaging whenever the wake-up has to happen for something that changed on your server and
you can send it as a push message or use one of the job scheduling API such as the newly-announced work manager or even job scheduler or Sync Manager. And you know with intelligent job scheduling you got a lot of things for free that has automatic backup and retry if your job fails for any reason you get criteria-based scheduling so you can only wake up the device when it has Network or is charging so that you don't actually run your coat and then says unnecessarily compliance and like I mentioned before even automatic wakelock handling. And there's a whole section
about background processing and work manager API specifically where you can learn more about this today. They mentioned the Android profiler before and I'm happy to say that today in Android Studio. We're also announcing the new energy profiler so that you can debug any kinds of problems with wakelocks. If you use them in your up and also see detailed information about alarms and jobs scheduled in your application. If you're interested to hear more about the profiler, please go to the session tomorrow. And with that, let me invite friends back on stage to send to talk to you about
what more you can do to improve quality of your apps. Thanks. Great, so we covered a lot about what's available in Android bios in the play Canto just quickly going to go through some of the other tools that you can get to use to be as improve the performance of your application. All of Android bios is based on data data collected from users devices users that are actually being affected by the issue itself. We would love for you to if not that I could be like buying these issues at all until we'd
encourage you to do more pre-launch testing of your application to find these issues before rolling it out to users. There's a session on this on Thursday at 9:30 and encouraged sitting down. Over the past couple years has made radical improvements to the Android operating system to help users get more out of their device in terms of performance. And for the batteries last longer major improvements with the latest version of Android and that was covering the keynote today. You can learn a lot more about that on Thursday at 11:30 in this section here. Boy that covered a
bunch of different tools within Android Studio to help you with improving your core vials, but there's a bunch of other profiles and tools available to improve all the rest of your vials. And so encouraging to use Android Studio, even if using another ID for example to build your game. Barbara offers many tools to help you be able to attract informants of your application at constant headaches and fire Bass Performance monitoring being the most relevant ones at for this tour will encourage you to use those sdks. If you want to be able to do custom logging out of your issues
that you might be having with your application know if there will be a difference in the data is collected from the Firebase SDK vs. What flight is through Android bios, which is from users who have opted-in to sharing the data with Google and our partners at you. You want to learn more about Firebase performance monitoring and you can attend this talk at 11:30 tomorrow? Recover lost in terms of what's available in Android bios in the play console today, but there's a lot more to learn and you can hear all about that on developers.
Android.com vitals. It's crazy. We got we started by covering why performance is vital overall, and hopefully you all agree. That is that's why you're here saying, so thank you, and I hope you take advantage of these new. Then we talked about how you can do both before by other issues. I'm finally what's available Beyond play console Android bios. We love to hear your feedback on the talk. If you can be up to go to this URL by your feedback. We'd love to hear from you. If you have any questions for us, you can meet us from at 425 at this
stand. It's on the other side of the law and will also be available after his Google Play console sandbox from 2 p.m. To 5 p.m. Tomorrow to answer any of your questions. Thank you all very much for joining us here today. We we hope that you'll make radical improvements your application over the next year, and then you'll get covered in Ohio top next year. It's the best of luck to you all it would improve your application. Thank you.
Buy this talk
Access to all the recordings of the event
Buy this video
With ConferenceCast.tv, you get access to our library of the world's best conference talks.