如何将 byte[] 转换为 bytebuffer 本机内存?
我需要将大量内存传递给 jni 端来解析它。 我之前使用GetByteArrayElements来获取本机指针。但是我发现这个方法总是复制内存,而不是直接使用内存。 所以我使用 GetDirectBufferAddress 直接获取内存以避免内存复制。 这就要求必须使用allocateDirect方法来分配内存。 但给我的内存是字节数组,而不是本机内存。 有没有办法将 byte[] 转换为 bytebuffer? 谢谢。
I need pass a large amount memory to jni side to parse it.
I used GetByteArrayElements to get the native pointer before.but i found this method is always copy the memory,not using the memory directly.
So i use GetDirectBufferAddress to get memory directly to avoid mem copy.
This require that one must use allocateDirect method to allocate memory.
But the memory gived to me is byte array, not native memory.
Is there some way to convert byte[] to bytebuffer?
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不幸的是,您必须使用 put 并将字节数组复制到使用
allocateDirect
分配的缓冲区中。Unfortunately, you will have to use put and copy your byte array to the buffer allocated with
allocateDirect
.