Blog 53

Designers love Apple, always have and always will so we're seeing more and more designs for Android that feature Gaussian blurring, the effect used by Apple since iOS7.

Apple have only just added UIBlurEffect in the iOS8 API, up until now iOS developers have had to code their own, but they always got the native performance. The problem with image processing on Android using Java is that it's slow, recognising this Google developed RenderScript which allows developers to get native performance without having to use the NDK which has a steeper learning curve, requires more maintenance and time, and is therefore more costly. To illustrate the performance gain you get from using RenderScript let's look at the render times for the built-in intrinsic RenderScript blur, and compare to a very fast Gaussian implementation in Java.

Java vs RenderScript gaussian blur performance
A graph showing the performance difference between Java and RenderScript when gaussian blurring an image

For small radius blurs RenderScript is ten times as quick, things level out for larger radii with RenderScript maintaining a four-fold increase in performance.

In order to ensure we can quickly develop Android apps with these computationally expensive operations we created the ImageTool library which allows us to easily manipulate images in our Android user-interfaces, features that would previously have been spoofed with static image assets can now be generated on-the-fly at runtime. We also developed a 'RenderQueue' which allows any series of operations to be repeated; effects applied to a preview image on-screen can later be replicated at full resolution on the original large-scale photo.

Doing this R&D upfront means we can move faster when evaluating new projects, we know where the challenges are on Android and we have a good idea of the effort required to overcome them - without making any compromises and without a costly learning curve.

Showcasing some of Degree 53's native app research and development
Showcasing some of Degree 53's native app research and development
Loading Icon Loading