Honey, I slowed down the phone
While we can blame Android to a certain extent for hogging resources, as the platform as evolved, it has not only improved on its resource diet, it has also provided quite a few tools and resources to Android developers to enable them to create better apps for their users.
Of course, the availability of hybrid apps has muddied the performance waters further. While this creates a tough situation for Android developers, it puts a much greater onus on testers to point out performance issues across Android versions and devices.
With this in mind, our CTO and co-founder Om Narayan talked to a group of people from the testing space at the StepIn Summit in Hyderabad. For those looking for the presentation, we have embedded it here
Current challenges in ensuring a quality mobile app include
1. Complexity in debugging your code
2. Unavailability of quality performance monitoring tools
3. The barrier of buying physical devices due to intense fragmentation
4. It is still time-taking to write your automated test cases
5. Throwing more people at the problem is still only good as a strategy to burn money
Testers will need to up their game (and, here comes the marketing pitch, RobusTest is here to help them ensure that the app that goes out to the door into the Play Store is worth) and for that they will need to go a level deeper into understanding how Android works.
One very useful source of this knowledge is the excellent series on Android Performance Patterns created by, who else, Google Developers.
One aspect of performance that manifests itself most explicitly is the screen rendering. Simply put human eyes perceive animation through a series of static objects run at a speed which 'tricks' the human eye into a feeling of motion. To get a lag free experience on your phone, it is said a new screen should be rendered in less than 16ms (that would ensure a rendering of 60 fps). If a screen takes more than that time to render, the user can detect the "trick". Android provides a nifty tool called "Profile GPU Rendering" within the platform to detect any rendering delays. The video below explains this feature .
Another very useful tool that is provided by the platform is "Debug GPU Overdraw". It enables the user to identify sections of the screen that have been drawn on over and over - which in general is a bad practice in rendering (with exceptions, of course).
Refer to this video from the guys at Android Performance Patterns to learn how to leverage Debug GPU Overdraw to ensure that your app is not taxing the device resources without reasons.
Wow! This post has turned out to be pretty long. Let us end it here with the promise of coming back with more on how to test your Android app like a boss! We would love to hear if this post helped you or hear some of your tips on testing Android apps.