Startup NimbleDroid Speeds Up Android Apps

The new tool provides an automated, comprehensive analysis of an app’s speed, memory usage, bandwidth consumption, and more.

Mar 14 2016 | By Holly Evarts

Junfeng Yang, associate professor of computer science, is a very patient man but not when it comes to his Android phone. “Nobody likes sluggish mobile apps!” he exclaims. So he’s been working on building tools to redefine how developers craft apps, and has focused on improving mobile app performance because sluggish apps are so frustrating for so many users. One of his most recent tools is NimbleDroid, an easy-to-use, powerful Android profiler that helps teams develop high-performance apps.

NimbleDroid is an easy-to-use, powerful Android profiler that helps teams develop high-performance apps.
NimbleDroid is an easy-to-use, powerful Android profiler that helps teams develop high-performance apps. —Image courtesy of Junfeng Yang

“We’ve been working with app developers at a range of organizations, including The New York Times, Yahoo, Abercrombie & Fitch, and others in the U.S., Europe, and Asia, to profile hundreds of builds of their apps,” says Yang, a pioneer in leveraging program analysis techniques to make real-world software fast, secure, and reliable. “And, in some cases, NimbleDroid has sped up their app startup by 300%!”

In a recent blog postThe New York Times reported that improving application startup and load time has been a priority for its own Android development team. Their team switched to NimbleDroid because it offered a simple way to identify bottleneck issues, and made it easier to compare performance across traces. The New York Times news app used to have a startup time of 5.6 seconds on a Nexus 5 but on NimbleDroid, they have since been able to cut that startup time to 1.6 seconds.

Working with his PhD student Younghoon Jeon, Yang designed NimbleDroid to give an automated, comprehensive analysis of an app’s speed, memory usage, bandwidth consumption, and more; it tracks performance across builds and detects regressions as soon as they are introduced. It can pinpoint slow code, and learn recommended fixes. There is no SDK (software development kit) to install: developers upload the APK (Android application package, the file format used by the Android operating system for installing software) and then NimbleDroid runs it in its monitored device cloud to conduct the performance analysis.

“Software is eating the world. There are approximately 19 million developers and the world’s annual software market is 400 billion,” observes Yang. “Software innovations have changed how we live, from communicating and socializing to transporting, shopping, learning, and so much more. Yet our software engineering process still relies on decades-old technology.”

While large tech companies such as Google and Facebook can afford to devote time and resources to optimize their apps, many other companies cannot, and Yang is aiming NimbleDroid at them. Anyone can use it—it’s currently free for basic use.

Says Yang, “All the data we are collecting, mining, and analyzing make NimbleDroid an even better tool—and the more data we have, the faster developers can find errors in their code.”

NimbleDroid has already profiled more than 18,000 Android apps for bugs that affect app startup time. Yang’s team is currently developing new product features including a feature that automatically identifies an app’s different usage scenarios and then tests that each usage scenario is fast without crashes. The team is also planning to build a system for iOS developers.

NimbleDroid’s technology was developed by Yang and Jeon in Yang’s Software Systems Lab. It proved popular among test users and so in 2014 the researchers cofounded a startup with Yang as CEO.

“Our research community has made a lot of breakthroughs, but most have not yet been adopted by industry,” Yang adds. “I’m excited to leverage our program analyses and research breakthroughs to automate software engineering as much as possible. We want our research to impact the real world, and help as many developers as we can to write excellent software. Better software benefits virtually every individual, business, and government on the planet.”

The NimbleDroid team has already raised a successful round of seed funding, and are growing rapidly. They are looking to raise a round of Series A funding soon.

Stay up-to-date with the Columbia Engineering newsletter

* indicates required