Isn't RenderScript available since API level 11? And there is also a SupportLibrary version that is available for even older versions of Android. What do you mean saying that it's from API level 17?
I have tried using Renderscrip in a large scale application (+1 million daily users) with a min API = 7. It is in fact available through the support library from API 8.
However :
-The Gaussian Blur Intrinsic is buggy on some terminals ! The implementation of Gaussian Blur in the Nexus 10 makes a mistake in a division (1000 instead of 1024 or the reverse), so we have very visible artefacts on this terminal. It might have been solved with the Lollipop ROM though.
-Using Renderscript on old terminal has proved to be a real pain in the ass. Since we have a large userbase, we also encounter some fairly exotic terminals. If I remember well, some Wikio phones (low cost chinese phones, but validated by Google) crashes as soon as you try to invoke Renderscript in a native thread (so you don't have any way to recover from this exception).
In the end, we removed Renderscript and replaced it by a custom blur implementation. In our case RS was not used for real time blur rendering, just blurring of a downloaded images, so the computation time is not vital.
I might have tried to reintroduce Renderscript later on, at least for the latest API levels but now that blurring does not fit anymore in Android's design language, we will just remove the blurred views from our app.
I did not know of android-gpuimage until now so I don't have an opinion on this lib.
I had a look at the open source alternatives to RS for blurring (including stackblur) and they were all very amateurish (crashes or graphical artifacts in some pretty simple usecases). I ended up writing my own implementation.
I'm wondering how fast drawing each frame of the underlying view into a bitmap is. That's not hardware accelerated is it? Or are you using some kind of off-screen gpu buffer to do that?
8 comments
[ 2.8 ms ] story [ 30.6 ms ] threadIn the end, we removed Renderscript and replaced it by a custom blur implementation. In our case RS was not used for real time blur rendering, just blurring of a downloaded images, so the computation time is not vital.
I might have tried to reintroduce Renderscript later on, at least for the latest API levels but now that blurring does not fit anymore in Android's design language, we will just remove the blurred views from our app.