Java 编译renderscript源代码
正如我在上一篇文章()中提到的,我尝试在运行时编译renderscript代码。 正如Kietz所建议的那样,我需要修改ScriptC类,所有生成的java类都是从该类派生的。 创建自己的扩展脚本的类失败,因为我无法调用这个超类的构造函数 这段代码Java 编译renderscript源代码,java,android,git,renderscript,Java,Android,Git,Renderscript,正如我在上一篇文章()中提到的,我尝试在运行时编译renderscript代码。 正如Kietz所建议的那样,我需要修改ScriptC类,所有生成的java类都是从该类派生的。 创建自己的扩展脚本的类失败,因为我无法调用这个超类的构造函数 这段代码 public class RuntimeScriptC extends Script { private static final String TAG = "RuntimeScriptC"; protected Runtime
public class RuntimeScriptC extends Script {
private static final String TAG = "RuntimeScriptC";
protected RuntimeScriptC(int id, RenderScript rs) {
super(id, rs);
}
给我这个错误:
The constructor Script(int, RenderScript) is undefined
我的下一个想法是将我自己的类添加到renderscript源代码中,并编译它以创建
一个新的.jar。我在上找到了源代码,但不知道如何只构建renderscript包
编辑:
我刚刚发现Script.java
的构造函数是包私有的。这就是为什么我不能在自己的类中访问构造函数。如果我可以自己编译renderscript源代码,我就可以将自己的类放入包中并访问它
新问题:在哪里可以找到renderscript源代码?如何编译它们?可以在找到renderscript的源代码,以及Android的其他源代码。如果你想重建Android或其一部分,这可能是一个很好的起点 然而,这是矫枉过正。如果不能直接修改
ScriptC
,只需从中继承即可。这是可能的,因为从ScriptC
需要的唯一方法是其受保护的构造函数。例如,我编写了HackedScriptC
,它只将其参数转发到ScriptC()
:
现在可以在glue类中将其替换为ScriptC
:
package com.example.android.rs.extremehax;
// ...
public class ScriptC_mono extends HackedScriptC {
// otherwise identical glue class...
在您的情况下,您不会调用超级构造函数
ScriptC(RenderScript,Resources,int)
,因为它会调用要覆盖的internalCreate
。而是调用ScriptC(int,RenderScript)
您最终重建了RenderScript吗?只重建RenderScript部分并不容易。我必须编译完整的android软件包,所以这是不可能的。在internalCreate中,有一个openRawResource函数。openRawResource是Resource类的一个函数,我们创建了自己的资源类,并将其提供给ScriptC的构造函数。openRawResource现在指向一个我们自己选择的目录,在那里我们可以添加/更改.bc文件。您有没有可能共享您的源代码?我对你的项目结果非常感兴趣,我不知道我被允许分享我们的代码,因为这是一篇论文。我会问公司我可以做什么,不可以做什么,并会尽快向你汇报此事!很抱歉回复时间太长。但是我们已经在上发布了源代码,并获得了麻省理工学院的许可。该项目尚未完全调试,但应该相当稳定。关于如何设置renderscript编译服务器以及如何将应用程序与之连接,很快就会有自述文件。我认为您希望看到的是“src/com/denayer/ovsr/MyResources.java”文件及其在“src/com/denayer/ovsr/RsScript.java”中的实现(RenderScriptTemplate函数)。如果您想了解更多信息,请随时回复或通过许可证中的电子邮件发送给我。
package com.example.android.rs.extremehax;
// ...
public class ScriptC_mono extends HackedScriptC {
// otherwise identical glue class...