Можно ли использовать Support Renderscript Library с помощью Gradle? Если да, как вы включаете его в свой проект?
Как использовать библиотеку поддержки Renderscript с помощью Gradle
Ответ 1
Gradle для Android теперь поддерживается поддержка Renderscript v8 только с двумя строками в вашей сборке script. См. ответ Аустин Махони. Сохранение первоначального ответа для исторической цели.
Старый ответ:
Gradle поддерживает встроенную компиляцию RS, но не библиотеку поддержки RS. Причина в том, что библиотека поддержки RS чрезвычайно сложна по сравнению с любой другой библиотекой поддержки. Библиотека поддержки RS на самом деле представляет собой библиотеку поддержки Java, набор собственных библиотек, поддерживающих Java lib, дополнительные собственные библиотеки для каждой компиляции script и альтернативную инструментальную цепочку для генерации как стандартного битового кода LLVM, так и собственных библиотек для ваших скриптов, Прямо сейчас поддерживаются только ADT и Ant; Gradle еще не существует.
Однако, возможно уже использовать некоторые части библиотеки поддержки RS из Gradle. Если вы хотите использовать внутренние интерфейсы RS, вы можете связать Java-часть библиотеки поддержки (sdk/build-tools/android-4.3/lib/renderscript/renderscript-v8.jar) и собственные компоненты (sdk/build-tools/android-4.3/lib/renderscript/packaged/<arch> /*. so), а затем вы будете установлены.
Я знаю, что поддержка библиотеки поддержки идет в какой-то момент в не слишком отдаленном будущем, но у меня нет твердой ETA, которую я могу предоставить.
Ответ 2
Использование Android Studio:
Добавьте следующие значения в build.gradle
для android gradle плагин v0.14 +
android {
...
defaultConfig {
...
renderscriptTargetApi 19
renderscriptSupportModeEnabled true
}
...
}
Для старых версий плагина android gradle v0.13.3 и ниже
android {
...
defaultConfig {
...
renderscriptTargetApi 19
renderscriptSupportMode true
}
...
}
Как только это будет сделано, используйте android.support.v8.renderscript.
в любом месте приложения. Библиотека jar и двоичные файлы включаются автоматически.
Ответ 3
Следуя подсказке Тима, я смог получить поддержку v8 с Gradle, вот мой макет проекта:
Я создал папку libs и скопировал файлы Tim, упомянутые в папке SDK. И вот мои изменения 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'));
}
}
После этого я могу импортировать файл android.support.v8.rderscript. * и использовать встроенные функции.
Ответ 4
Я знаю, что это уже ответили, но я решил поделиться своим опытом с поддержкой Android-Studio и RendersScript с помощью Build-tools 21.1.0. Это то, что я нашел в build-system changelog строки 26-32:
- Переименовано несколько свойств, чтобы сделать вещи более согласованными.
- BuildType.runProguard → minifyEnabled
- BuildType.zipAlign → zipAlignEnabled
- BuildType.jniDebugBuild → jniDebuggable
- BuildType.renderscriptDebug → renderscriptDebuggable
- ProductFlavor.renderscriptSupportMode → renderscriptSupportModeEnabled
- ProductFlavor.rderscriptNdkMode → renderscriptNdkModeEnabled
Итак, вы видите, что они изменили имя свойства. Я просто обновил build.gradle, чтобы использовать:
renderscriptSupportModeEnabled true
Теперь библиотеки добавляются в проект, и вам не нужно вручную добавлять их в свою папку lib.
Ответ 5
В модуле Gradle Android есть экспериментальная поддержка на момент написания этой статьи. Дополнительную информацию см. В этом тестовом проекте.
Ответ 6
Если кто-то заинтересован в том, как упаковать это как распределяемый двоичный файл .jar(например, для развертывания в maven-репо), вы можете использовать эту файловую структуру для своего .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>
Для build.gradle добавьте: compile 'android:renderscript:19.0.3'
к вашим зависимостям clojure.
PS: библиотека renderscript не будет работать на armv6 (armeabi), поэтому убедитесь, что Build.CPU_ABI
- либо armeabi-v7a, mips или x86.