我将Android Studio更新为2.0 Preview 2,然后出现错误Renderscript目标21+目前不支持Renderscript支持模式
我正在使用renderscriptTargetApi 23
由于我已经迁移到androidx,我无法运行Renderscript.我得到以下异常:
2018-10-12 16:27:58.328 27195-27195/pl.qus.xenoamp2 A/zygote64:java_vm_ext.cc:504] JNI在应用程序中检测到错误:JNI NewGlobalRef调用挂起异常java.lang.ClassNotFoundException:没有在路径上找到类"android.support.v8.renderscript.RenderScript":DexPathList [[zip文件"/data/app/pl.qus.xenoamp2-xHJAddeg9oM-uGSxlvMp7A==/base.apk"],nativeLibraryDirectories=[/data /app/pl.qus.xenoamp2-xHJAddeg9oM-uGSxlvMp7A==/lib/arm64,/data/app/pl.qus.xenoamp2-xHJAddeg9oM-uGSxlvMp7A==/base.apk!/lib/arm64-v8a,/ system/lib64,/ system/vendor/lib64]] 2018-10-12 16:27:58.328 27195-27195/pl.qus.xenoamp2 A/zygote64:java_vm_ext.cc:504] at java.lang.Class dalvik.system.BaseDexClassLoader java.lang上的.findClass(java.lang.String)(BaseDexClassLoader.java:93)2018-10-12 16:27:58.328 27195-27195/pl.qus.xenoamp2 A/zygote64:java_vm_ext.cc:504].类java.lang.ClassLoader.loadClass(java.lang.String,boolean)(ClassLoader.java:379)2018-10-12 16:27:58.328 27195-27195/pl.qus.xenoamp2 A/zygote6 4:java_vm_ext.cc:504] java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String)(ClassLoader.java:312)2018-10-12 16:27:58.328 27195-27195/pl .qus.xenoamp2 A/zygote64:java_vm_ext.cc:504] at java.lang.String java.lang.Runtime.nativeLoad(java.lang.String,java.lang.ClassLoader,java.lang.String)(Runtime.java : - )2018-10-12 16:27:58.328 27195-27195/pl.qus.xenoamp2 A/zygote64:java_vm_ext.cc:504] at java.lang.String java.lang.Runtime.doLoad(java.lang .string,java.lang.ClassLoader)(Runtime.java:1099)2018-10-12 16:27:58.328 27195-27195/pl.qus.xenoamp2 A/zygote64:java_vm_ext.cc:504] at void java.lang .Runtime.loadLibrary0(java.lang.ClassLoader,java.lang.String)(Runtime.java:1014)2018-10-12 16:27:58.328 27195-27195/pl.qus.xenoamp2 A/zygote64:java_vm_ext.cc void 504.在void java.lang.System.loadLibrary(java.lang.String)(System.java:1657)2018-10-12 16:27:58.328 27195-27195/pl.qus.xenoamp2 A/zygote64:java_vm_ext .cc:504]在androidx.renderscript.RenderScript androidx.renderscript .RenderScript.internalCreate(android.content.Context,int,androidx.renderscript.RenderScript $ ContextType,int)(RenderScript.java:1408)2018-10-12 16:27:58.328 27195-27195/pl.qus.xenoamp2 A/zygote64:java_vm_ext.cc:504]在androidx.renderscript.RenderScript androidx.renderscript.RenderScript.create(android.content.Context,int,androidx.renderscript.RenderScript $ ContextType,int)(RenderScript.java:1599)2018- 10-12 16:27:58.328 27195-27195/pl.qus.xenoamp2 A/zygote64:java_vm_ext.cc:504]在androidx.renderscript.RenderScript androidx.renderscript.RenderScript.create(android.content.Context,androidx.renderscript .RenderScript $ ContextType,int)(RenderScript.java:1549)2018-10-12 …
当我启动我的应用程序时,它会启动一个Activity应该有透明标题,并且背景中当前显示的任何内容都应该模糊.
我能够获得透明度.但我无法弄清楚如何模糊背景.例如,如果我从主屏幕启动应用程序,那么主屏幕应该是可见的但模糊了.
我有一个想法是使用Framebuffer来获取当前显示的数据,但是如何将其转换为位图,我可以使用它来绘制图像而不保存图像并直接使用数据.
我也知道我们可以通过按电源和音量按钮来截取屏幕截图.有没有人知道android中的代码在哪里?我的应用程序将具有系统访问权
android android-activity android-blur-effect android-renderscript
我们使用renderscript进行音频dsp处理.它很简单,并且对我们的用例显着提高了性能.但是USAGE_SHARED,对于具有启用GPU执行的自定义驱动程序的设备,我们遇到了一个恼人的问题.
您可能知道,USAGE_SHAREDflag使renderscript分配重用给定的内存,而不必创建它的副本.因此,它不仅可以节省内存,在我们的情况下,可以将性能提高到所需的水平.
以下代码USAGE_SHARED在默认的renderscript驱动程序(libRSDriver.so)上工作正常.使用自定义驱动程序(libRSDriver_adreno.so)USAGE_SHARED不会重用给定的内存,从而重用数据.
这是使用USAGE_SHARED和调用renderscript内核的代码
void process(float* in1, float* in2, float* out, size_t size) {
sp<RS> rs = new RS();
rs->init(app_cache_dir);
sp<const Element> e = Element::F32(rs);
sp<const Type> t = Type::create(rs, e, size, 0, 0);
sp<Allocation> in1Alloc = Allocation::createTyped(
rs, t,
RS_ALLOCATION_MIPMAP_NONE,
RS_ALLOCATION_USAGE_SCRIPT | RS_ALLOCATION_USAGE_SHARED,
in1);
sp<Allocation> in2Alloc = Allocation::createTyped(
rs, t,
RS_ALLOCATION_MIPMAP_NONE,
RS_ALLOCATION_USAGE_SCRIPT | RS_ALLOCATION_USAGE_SHARED,
in2);
sp<Allocation> outAlloc = Allocation::createTyped(
rs, t,
RS_ALLOCATION_MIPMAP_NONE,
RS_ALLOCATION_USAGE_SCRIPT | RS_ALLOCATION_USAGE_SHARED, …Run Code Online (Sandbox Code Playgroud) performance android signal-processing renderscript android-renderscript
我正在尝试使用Android的RenderScript在图像后面渲染一个半透明的圆圈,但是从RenderScript内核返回一个值时出了问题.
这是我的内核:
#pragma version(1)
#pragma rs java_package_name(be.abyx.aurora)
// We don't need very high precision floating points
#pragma rs_fp_relaxed
// Center position of the circle
int centerX = 0;
int centerY = 0;
// Radius of the circle
int radius = 0;
// Destination colour of the background can be set here.
float destinationR;
float destinationG;
float destinationB;
float destinationA;
static int square(int input) {
return input * input;
}
uchar4 RS_KERNEL circleRender(uchar4 in, uint32_t x, uint32_t y) {
//Convert input …Run Code Online (Sandbox Code Playgroud) 更新:好的,所以我进一步研究了这一点。设法使用bundletool尝试测试了不同的apk,发现了这一点:
“ App Bundle包含32位RenderScript位代码文件(.bc),它将在Android中禁用64位支持。”
我正在尝试使我的应用程序与新的PlayStore要求兼容64位。我们确实在应用程序中使用了RenderScript,所以我想知道这是否会引起问题?而且,如何解决这些问题?渲染脚本是一个非常小的脚本,它仅根据输入输出带有绿色或红色部分的位图。
#pragma version(1)
#pragma rs java_package_name(za.co.overtake)
int*reds;
int*greens;
int*blues;
int imgWidth;
uchar4 RS_KERNEL root(uchar4 in, uint32_t x, uint32_t y) {
bool colourme = false;
for(int col = 0; col < imgWidth; col++){
const int red = reds[col];
const int green = greens[col];
const int blue = blues[col];
if (in.r == red && in.g == green && in.b == blue){
colourme = true;
}
}
if (colourme) {
// Cannot increase red amount much as it …Run Code Online (Sandbox Code Playgroud) 我想从RenderScript中的一个Allocation访问更多元素.我们来自Google的示例代码:
uchar4 __attribute__((kernel)) invert(uchar4 in, uint32_t x, uint32_t y) {
uchar4 out = in;
out.r = 255 - in.r;
out.g = 255 - in.g;
out.b = 255 - in.b;
return out;
}
Run Code Online (Sandbox Code Playgroud)
它需要一个uchar4,谁是分配的一个元素.是否可以访问和操作多个元素?就像展开一个循环一样,例如,来自Bitmap的8个像素.
谢谢.
我在项目中使用的是Android DS-Photo-Editor-SDK v1.5(“ ds-photo-editor-sdk-v6.aar”)和androidx。打开编辑器过滤器时出现以下错误:
2018-10-26 19:36:27.949 16826-16898/com.levionsoftware.photos E/software.photo: ----- class 'Landroidx/renderscript/RenderScript;' cl=0x16f0d598 -----
2018-10-26 19:36:27.951 16826-16898/com.levionsoftware.photos E/software.photo: objectSize=492 (172 from super)
2018-10-26 19:36:27.951 16826-16898/com.levionsoftware.photos E/software.photo: access=0x8008.0001
2018-10-26 19:36:27.951 16826-16898/com.levionsoftware.photos E/software.photo: super='java.lang.Class<java.lang.Object>' (cl=0x0)
2018-10-26 19:36:27.951 16826-16898/com.levionsoftware.photos E/software.photo: vtable (71 entries, 11 in super):
2018-10-26 19:36:27.951 16826-16898/com.levionsoftware.photos E/software.photo: 0: long androidx.renderscript.RenderScript.a(int, long, boolean)
2018-10-26 19:36:27.951 16826-16898/com.levionsoftware.photos E/software.photo: 1: long androidx.renderscript.RenderScript.a(long, int, int, int)
2018-10-26 19:36:27.951 16826-16898/com.levionsoftware.photos E/software.photo: 2: long androidx.renderscript.RenderScript.a(long, int, int, int, java.lang.String)
2018-10-26 19:36:27.951 16826-16898/com.levionsoftware.photos E/software.photo: 3: long androidx.renderscript.RenderScript.a(long, …Run Code Online (Sandbox Code Playgroud)