NimbleDroid Product Update, Mar 2016

The past month saw more exciting features make it to production, as well as lots of updates to give our growing user base a smoother and faster experience.

Memory Leaks

NimbleDroid already provides identification for speed-related problems, so we’re pleased to now provide detection of memory leaks as well. We report references to Activity objects that persist after the lifecycle of an Activity has ended. These persistent objects and the references they contain can’t be garbage collected. Activity leaks are dangerous on Android because of the amount of memory associated with an Activity, and the fact that Activities can be created multiple times, worsening the problem each time. Garbage collection will run more often as memory is consumed, slowing down the app, and the app may also crash due to an Out Of Memory error.

We looked at the leak detection strategy used by the great LeakCanary and tried to improve on it a bit. We track the Activity lifecycle in the Android runtime directly so no SDK addition or code change is required. Developers also avoid having to manually poke around an app looking for leaks, since we scan for leaks in our multi-step Scenarios (described below). Set up NimbleDroid with your Continuous Integration server, and you now get memory leak detection every time you build.

New Available App Information

Multi-step Scenarios

Last month we expanded NimbleDroid to cover more than just Cold Startup, auto-detecting and profiling a variety of Scenarios available from the start screen of an app. We built on that feature this month by adding expanding the depth of actions in the app that we profile. We can now auto-identify and profile Scenarios that are several clicks away from an app’s start screen. This gives developers even more areas of their app which they can now use NimbleDroid to inspect. We are also working on more ways to expand the number of Scenarios identified.

Method Count Graph

Some customers have told us they want the ability to specify particular Scenarios themselves, rather than relying just on the ones we auto-detect. If you are interested in this kind of feature, please drop us a line at contact@nimbledroid.com.

Better Data Visualization

With all the new data coming from our expanded Scenario identification and our memory leak detection, it was time to give the UI a few updates. The App Info tab now shows an overview of the steps that make up a Scenario, for better identification. We report speed and memory issues in the Scenario list, and we’ve added spark lines to give an at-a-glance indication of trends for the metrics we report over the last 4 uploads of an app.

Scenario Example

With the addition of memory issue reporting to speed issue reporting, the default Scenario view now lists all issues in one place.

Other Improvements

We also released a variety of fixes, tweaks, and updates this month. We added more detailed security information to our help page, for those asking about our policies and practices. We now start profiling each Scenario as soon as it is identified, rather than waiting until the last Scenario for the app is identified. We updated several out-of-date error messages, fixed some mobile view bugs, and fixed a variety of issues that were preventing certain Scenarios from profiling.

Next Month

We’ve got more planned for next month, including a better experience for new users, a more streamlined process for Continuous Integration setup, and improvements to our existing features. If there’s something you’d like to see in an upcoming release, or if you have questions or problems with something on NimbleDroid, please email us at contact@nimbledroid.com.