In the previous chapters, we have walked through a number of great tools that can be used to diagnose issues in your Android app. We’ve looked to optimize battery, memory, CPU, and network using free tools that you can use on your Android device. However, as we discussed in Chapter 2 (and you are well aware), these tests require having a physical device in hand, and only permit testing on the Internet connections that are available.
Without a large travel budget and an infinite budget for devices (and unlimited time to focus on performance) how can you ensure that your app is performing optimally for all of your customers, regardless of location, network, or device? The answer is to collect runtime data on your app, aggregate the results, build reports, and look for issues that might arise from the data. These analytics are drawn from the app itself, and is commonly known as real user monitoring (RUM).
While some development teams with deep pockets might build their own RUM engines to gather data, there are a number of tools on the market that you can integrate into your app to collect data from your install base. Many of them are free or have limited free offers, allowing you to begin collecting this information without a huge upfront cost. If your app begins collecting a lot of data or you need detailed reporting, you may have to begin paying for these services, but the value of the data (as you will see) is worth it.