在Android上使用NDK将指针传递给java

时间:2011-07-26 04:01:59

标签: android c android-ndk

我想在Android程序中使用memset。 我尝试使用NDK在C中编码,然后在我的JAVA Android程序中使用库。

memset的输入是*ptr。我想发送内存地址(如0x8134)进行编程,然后使用memset更改它。我可以发送这到我的程序?

1 个答案:

答案 0 :(得分:1)

首先,如你所知,Java没有指针的概念,因此无法使用指针(需要使用memset)来真正分配/使用内存区域。

也就是说,可以使用ByteBuffer.allocateDirect来获得直接字节缓冲区,其地址可以在JNI的本机端使用,以进行直接内存操作。此外,您可以直接在本机代码中分配内存,并将其作为ByteBuffer传递回Java代码。这是最接近C / C ++类型的内存访问/操作。

更多细节:
http://onjava.com/pub/a/onjava/2002/10/02/javanio.html?page=2
http://docs.oracle.com/javase/6/docs/api/java/nio/ByteBuffer.html