在java和c之间传递数据++

gxwragnw  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(398)

关闭。这个问题需要更加突出重点。它目前不接受答案。
**想改进这个问题吗?**通过编辑这篇文章更新这个问题,使它只关注一个问题。

上个月关门了。
改进这个问题
我正在开发一个应用程序,其中我有一个java应用层和一个c++插件服务。我需要从应用层调用本机代码api,应用层将通过aosp框架开发的jni层调用。
现在的问题是,我需要将一块数据从应用层传递到本机层,本机层将通过jni调用传递到本机层。
我不想直接传递数据,而是希望使用sharedmemory(或任何有效的方法)。有人能告诉我如何将数据从应用层传递到本机代码吗?
有没有任何方法可以在本机层中分配内存,并从应用程序层访问该内存位置以将数据存储到该内存位置?
我不能使用用户实现的jni层。

deikduxw

deikduxw1#

简而言之:没有。
长话短说:你提到了aosp,所以我假设你正在使用android操作系统。
aosp中的jni实现非常特殊,您只能通过函数参数和原语返回值与之通信。
使用jnienv方法在本机代码中创建java对象的新示例是可能的,但是非常不鼓励这样做。
一般来说,通过jni在java和native之间移动大量数据的整个过程是有问题的。
请阅读以下内容以了解更多详细信息:https://developer.android.com/training/articles/perf-jni

相关问题