A blog site for teams who care about building great apps
Guest Post: How NimbleDroid helped Flipkart speed up app startup by 45%
By Sourabh Gupta and Anirudh, Android Developers at FlipkartMay 9, 2017We found Nimbledroid via http://androidweekly.net/ and checked it out starting in 2016. We had been looking for a service to help us identify where exactly in code we needed to improve Flipkart performance time. Over the last five months NimbleDroid has helped us detect and fix several performance bottlenecks, as...
Eight Ways Your Android App Can STOP Leaking Memory
By Tom HuzijSep 6, 2016In part one of this blog post “Eight Ways Your Android App Can Leak Memory”, we went over eight different ways your code can cause your Android application to leak memory. Specifically, all eight leaks were leaking an Activity instance, which is particularly dangerous because activities have a very large...
App Diets are not a Fad
By Mikhail NakhimovichJun 15, 2016In our last post we explored an architecture/library selection that would lead to nearly perfect startup times. Today I wanted to explore another type of performance optimization: APK size. A smaller APK results in faster resource lookup and faster reflection. Image optimization, an important way to cut down APK size,...
Eight Ways Your Android App Can Leak Memory
By Tom HuzijMay 23, 2016One advantage of a garbage-collecting-language like Java is that it removes the need for developers to explicitly manage allocated memory. This reduces the likelihood of a segmentation fault crashing the app or an unfreed memory allocation bloating the heap, thus creating safer code. Unfortunately, there are other ways that memory...
Five Common Issues That Slow Down Your App
By Junfeng YangMay 9, 2016In the last couple of months, we’ve been describing a handful of common issues that slow down your Android app based on our analysis using NimbleDroid. We conclude this series of posts by summarizing the issues here. Java reflection. Reflection is, of course, an extremely useful aspect of Java and...
Performance Problems in Libraries and SDKs
By Anton Krasov | Sarvar DhillonApr 25, 2016It’s difficult to imagine modern android apps that don’t implement some external libraries or SDKs. After all, most apps have to leverage some combination of network image loading, crash tracking, advertisement, or analytics libraries and SDKs. It makes sense - developers shouldn’t have to reinvent the wheel (several wheels, actually)...
Pushing the Limits of App Startup Time
By Mikhail NakhimovichApr 20, 2016It’s easy to make a tiny app fast. It’s more challenging when you need to deal with the complexities required by most apps: data caching, json parsing, immutability, dependency injection, and a slew of support libraries.It’s still possible to minimize startup time, even when you’re following modern development practices such...
Why Is ClassLoader.getResourceAsStream So Slow in Android?
By Anton Krasov | Sarvar DhillonApr 6, 2016Through our extensive analysis at NimbleDroid, we’ve picked up on a few tricks that help prevent monolithic lags in Android apps, boosting fluidity and response time. One of the things we’ve learned to watch out for is the dreaded ClassLoader.getResourceAsStream, a method that allows an app to access a resource...
Five Lesser-Known Ways to Hang Your Main Thread
By Anton KrasovMar 21, 2016By now, most Android Developers already know that the main thread of an app is the one that handles user interaction, and should consequently be considered off-limits for time-consuming work. In general, any method invocation that causes the main thread to hang for 16*N milliseconds will lead to N dropped...
Comparing the Performance of Dependency Injection Libraries
By Anton KrasovMar 7, 2016The dependency injection (DI) has become an increasingly popular tool in Android development, and for good reason. Injections reduce the amount you have to code (and hence, debug), facilitating the creation of better apps and a smoother development process. While it may be tempting to toss in dependencies to a...
How Slow is Reflection in Android?
By Anton KrasovFeb 23, 2016(So far we’ve analyzed a lot of apps and discovered a handful of issues that significantly slow down many apps. Starting from this post, we’ll describe these issues one by one.) Reflection is, of course, an extremely useful aspect of Java and Android development. Yet it turns out that reflection...
How to Make Your Application Fluid
By Junfeng Yang | Sarvar DhillonSep 17, 2015In a previous blog post, we discussed the importance of monitoring your app’s performance. This time, we’ll show you exactly how to go about doing this. We’ve spoken with several developer teams from some of the most popular apps in the world, including WeChat and Yahoo News Digest, about the...