Est-il possible d'utiliser la Support Renderscript Library avec Gradle? Si oui, comment l'incluez-vous dans votre projet?
Gradle for Android has now Renderscript v8 support with only 2 lines in your build script. See answer by Austyn Mahoney . Keeping the réponse originale à des fins historiques.
Ancienne réponse:
Gradle prend en charge la compilation RS native, mais pas la bibliothèque de prise en charge RS. La raison en est que la bibliothèque de support RS est extrêmement compliquée par rapport à toute autre bibliothèque de support. La bibliothèque de support RS est en fait une bibliothèque de support Java Java, un ensemble de bibliothèques natives qui la soutiennent Java lib, des bibliothèques natives supplémentaires pour chaque script que vous compilez et un chaîne d'outils alternative pour générer à la fois le code bit LLVM standard et les bibliothèques natives pour vos scripts. Pour le moment, seuls ADT et Ant le prennent en charge; Gradle n'est pas encore là.
Cependant, il est déjà possible d'utiliser certaines parties de la bibliothèque de support RS de Gradle. Si vous souhaitez utiliser les intrinsèques RS, vous pouvez lier la partie Java de la bibliothèque de support (sdk/build-tools/Android-4.3/lib/renderscript/renderscript-v8.jar) et les composants natifs (sdk/build-tools/Android-4.3/lib/renderscript/packaged/<Arch>/*. so), puis vous serez défini.
Je sais que le support Gradle pour la bibliothèque de support arrivera à un moment donné dans un avenir pas trop lointain, mais je n'ai pas d'ETA ferme que je puisse partager.
Utilisation de Android Studio:
Ajoutez les valeurs suivantes à build.gradle
pour plugin Android Gradle v0.14 +
Android {
...
defaultConfig {
...
renderscriptTargetApi 19
renderscriptSupportModeEnabled true
}
...
}
Pour les anciennes versions du Android plugin gradle v0.13.3 et inférieur)
Android {
...
defaultConfig {
...
renderscriptTargetApi 19
renderscriptSupportMode true
}
...
}
Une fois cela fait, utilisez Android.support.v8.renderscript.
n'importe où dans votre application. Le bocal et les fichiers binaires de la bibliothèque sont inclus automatiquement.
Suite à l'indication de Tim, j'ai pu obtenir le support de la v8 en travaillant avec Gradle, voici la disposition de mon projet:
J'ai créé le dossier libs et copié les fichiers Tim mentionnés sous le dossier SDK. Et voici mes modifications build.gradle:
dependencies {
compile files('libs/renderscript-v8.jar')
}
Android {
tasks.withType(com.Android.build.gradle.tasks.PackageApplication) {
pkgTask -> pkgTask.jniFolders = new HashSet<File>();
pkgTask.jniFolders.add(new File(projectDir, 'libs'));
}
}
Après cela, je peux importer Android.support.v8.renderscript. * Et utiliser les intrinsèques.
Je sais que cela a déjà été répondu, mais j'ai pensé partager mon expérience avec le support d'Android-Studio et de Renderscript avec Build-tools 21.1.0. C'est ce que j'ai trouvé dans build-system changelog lignes 26-32:
- Renommé quelques propriétés pour rendre les choses plus cohérentes.
- BuildType.runProguard -> minifyEnabled
- BuildType.zipAlign -> zipAlignEnabled
- BuildType.jniDebugBuild -> jniDebuggable
- BuildType.renderscriptDebug -> renderscriptDebuggable
- ProductFlavor.renderscriptSupportMode -> renderscriptSupportModeEnabled
- ProductFlavor.renderscriptNdkMode -> renderscriptNdkModeEnabled
Donc, vous voyez, ils ont changé le nom des propriétés. Je viens de mettre à jour build.gradle pour utiliser:
renderscriptSupportModeEnabled true
Maintenant, les bibliothèques sont ajoutées au projet et vous n'avez pas besoin de les ajouter manuellement à votre dossier lib.
Il y a un support expérimental dans le plugin Gradle Android au moment de la rédaction de cet article. Voir ceci projet de test pour plus d'informations.
Si quelqu'un souhaite savoir comment l'empaqueter en tant que .jar binaire distribuable (par exemple pour le déploiement dans un référentiel maven), vous pouvez utiliser cette structure de fichier pour votre .jar.
pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.Apache.org/POM/4.0.0 http://maven.Apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.Apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>Android</groupId>
<artifactId>renderscript</artifactId>
<version>19.0.3</version>
<description>Artifactory auto generated POM</description>
</project>
Pour build.gradle, ajoutez: compile 'Android:renderscript:19.0.3'
à vos dépendances clojure.
PS: La bibliothèque de rendu ne fonctionnera pas sur armv6 (armeabi), alors assurez-vous que Build.CPU_ABI
est armeabi-v7a, mips ou x86.