我阅读了很多关于它的文章,但无法清楚地理解一个非常重要的问题。因此,例如,我编写了一个程序(使用Java),它在编译我的程序以在Dalvik中执行之后使用OpenGL API(包含此API的包)。这个字节代码如何与opengles.so通信?这个沟通什么时候出现?
答案 0 :(得分:1)
如果我错了,请纠正我,因为以下只是一个猜测:
Android框架附带了一组实现OpenGL功能的Java类。 这个Java类只是通过JNI调用本机OpenGL函数,因此利用本机OpenGL库。
如果你看一下Android框架资源,你可以看到以下内容:
public class GLES20 {
public static native void glClearColor(
float red,
float green,
float blue,
float alpha
);
// C function void glClearDepthf ( GLclampf depth )
public static native void glClearDepthf(
float depth
);
// C function void glClearStencil ( GLint s )
public static native void glClearStencil(
int s
);
// More functions
}
所以,我认为这只是JNI。它都是开源的,只需去那里看一看。