web-dev-qa-db-fra.com

Comment utiliser la bibliothèque de support Renderscript avec Gradle

Est-il possible d'utiliser la Support Renderscript Library avec Gradle? Si oui, comment l'incluez-vous dans votre projet?

32
Janusz

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.

16
Tim Murray

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.

126
Austyn Mahoney

Suite à l'indication de Tim, j'ai pu obtenir le support de la v8 en travaillant avec Gradle, voici la disposition de mon projet:

enter image description here

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.

6
xy uber.com

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.

2
Joe3112

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.

1
tad

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.

Overall file structureJava classes

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.

1