Using the Android Renderscript v8 Support Library
July 7, 2014Renderscript is a framework for computationally intensive tasks such as image processing that was added to Android in API level 11. To use this library in earlier versions of Android (API level 8+), a support library was added to the Android SDK Build Tools.
Adding the support library to your project
This can be accomplished through a few different build methods.
Add the renderscript-v8.jar file to your project files
Navigate to the renderscript directory in the latest build tools directory in your Android SDK directory:
(ANDROID SDK DIRECTORY)/build-tools/20.0.0/renderscript/lib/
(Replace the “20.0.0” with the current version of build tools that you are using.)
There you will find renderscript-v8.jar. Copy this jar file to the
(PROJECT BASE DIRECTORY)/libs
directory of your Android project, and then add it as a dependency for your specific IDE.
Through Maven
If you’re using Maven, then you are likely also using Maven Android SDK Deployer to create a local Maven repository for your Android SDK dependencies. However, you will need to use a fork of that project that creates an entry in your local Maven repo for the renderscript-v8 library.
You will need to edit these lines in the forked project’s pom.xml file to reflect what SDK platform version and build tools version you are using:
<android.sdk.platform>19</android.sdk.platform> <android.buildtools.version>19.0.3</android.buildtools.version>
After executing “mvn install” on the forked project, you can then create a dependency for the renderscript-v8 library by adding the following to your project’s pom.xml file:
<dependency> <groupId>android.support.v8</groupId> <artifactId>renderscript</artifactId> <version>v8</version> <type>jar</type> </dependency>
Through Gradle
If you are using Android Studio 0.5.+, add the following to the android-defaultConfig entry build.gradle file:
android { defaultConfig { renderscriptTargetApi 19 renderscriptSupportMode true } }
Native Library Files
Now that you’ve added the renderscript-v8 dependencies to your project, you must also add the native library files for each type of processor a device could have.
Navigate to the native library files for renderscript in your build tools directory:
(ANDROID SDK DIRECTORY)/build-tools/20.0.0/renderscript/lib/packaged
In here you will find “armeabi-v7a”, “mips”, and “x86” directories. Note that only devices that use one of these three CPU architectures are supported by the renderscript-v8 support library. Each directory contains a librsjni.so and a libRSSupport.so file. Copy all of these directories to the
(PROJECT BASE DIRECTORY)/libs
directory of your Android project.
Proguard Configuration
If you use Proguard in release builds of your app, then you will need to add the following entries to your proguard.cfg file to prevent Proguard from messing with the renderscript-v8 library and its native dependency libraries:
-keepclasseswithmembernames class * { native <methods>; } -keep class android.support.v8.renderscript.** { *; }
Using the Renderscript library
With all of that done, you can now use the renderscript library in your code with
import android.support.v8.renderscript.*;
Looking for more like this?
Sign up for our monthly newsletter to receive helpful articles, case studies, and stories from our team.
A 3-part framework for getting your software project approved internally
September 25, 2024Explore this strategic approach to securing internal buy-in for your custom software projects. The framework emphasizes starting with a lean business case, engaging key stakeholders across the organization to align economic, operational, and technical considerations, and embracing an iterative learning process to make informed decisions.
Read moreUser research: The heartbeat of successful development
July 15, 2024User research in software development is essential for success. Learn how consistently engaging in methods like user interviews, usability testing, and field studies throughout the product lifecycle, helps ensure your solutions align closely with user needs.
Read more