gpt4 book ai didi

android - 以最小的访问开销在 Java 服务和 native 应用程序之间共享缓冲区

转载 作者:太空宇宙 更新时间:2023-11-03 11:14:52 33 4
gpt4 key购买 nike

我正在尝试在 Android Java 服务和 native 进程之间设置共享内存区域。 native 进程没有Java组件,纯C++,直接通过命令行从shell调用。

我相信我可以使用 ashmem 和 Binder 来完成这个。首先调用ashmem_create_region,对结果调用mmap,然后使用binder将生成的fd传递给其他进程。另一个进程在 fd 上执行 mmap,从而获得对共享区域的访问权限。

我知道这适用于两个 Java 应用程序,也适用于 Java 应用程序或服务与 native 模式进程。

我现在想知道 Java 服务如何有效地访问数据。我想使用这种机制将大约 300MB 大小的 float 缓冲区从 native 应用程序复制到 Java 服务。现在,Java 服务需要访问这些数据,而不会像 JNI 那样产生开销。分配共享区域的最佳策略是什么,以便 native 程序可以将 float 快速复制到缓冲区中,并且 Java 服务可以以最小的开销访问这些值?

谢谢

最佳答案

看看这个例子。它在 Java 和 native 应用程序之间创建共享内存。 https://github.com/vecio/AndroidIPC

关于android - 以最小的访问开销在 Java 服务和 native 应用程序之间共享缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17980941/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com