gpt4 book ai didi

android - 如何在 Android 中使用共享内存 (IPC)

转载 作者:IT王子 更新时间:2023-10-29 01:12:01 27 4
gpt4 key购买 nike

我已经在 Linux 中编写了一个简单的共享内存 C 程序。
我如何在 Android 中使用共享内存(或者我应该称之为“ashmem?”)?

我希望你能给我一个循序渐进的指导。

最佳答案

这是对我有用的:
1) 打开一个内存文件对象:mFile;
2) 创建一个服务,使用 mmap 将其映射到 ashem;
3) 使用 ParcelFileDescriptor pfd 将 native 文件描述符 (fd) 返回给绑定(bind)到您的服务的客户端;
4) 为获取fd的客户端创建JNI并使用mmap映射到 Ember ;
5) 使用此 fd 创建 InputStream,现在客户端可以使用 InputStream 对象读取/写入相同的内存区域。
link展示了如何将 MemoryFile 映射到 ashem。这link展示了如何通过 AIDL 将 native 文件描述符 (fd) 发送到客户端,并将 ParcelFileDescriptor 发送到客户端。

在服务器端,你需要创建:
1)通过ParcelFileDescriptor将原生fd传递给客户端的服务&AIDL;2) 服务端的 JNI 执行映射。

在客户端:1)方法绑定(bind)到服务,然后调用服务获取原生fd;2) 将 fd 映射到 ashem 的 JNI。

然后服务和客户端可以读取/写入映射的内存区域。

关于android - 如何在 Android 中使用共享内存 (IPC),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16099904/

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