android共享内存

摘要:
互联网上有很多关于在Android下使用Ashmem共享内存的报道,但在尝试了这种方法后,你可以将内存映射出来,但你还没有与其他进程共享。具体用法:1)fd=打开;2) ioctl;3) ioctl;4) ptr=mmap;上述方法没有实现两个进程之间的内存共享。

在android下不能通过shm_open使用共享内存。

网上有好多关于android下使用Ashmem实现共享内存的,但经过尝试该方法可以mmap出内存,但是和另一个进程没有实现共享。

具体的使用方法:

1)fd = open("/dev/ashmem", O_RDWR);

2)ioctl(fd, ASHMEM_SET_NAME, region_name);
3)
ioctl(fd, ASHMEM_SET_SIZE, region_size); 

4)ptr=mmap(NULL, len , PROT_READ|PROT_WRITE, MAP_SHARED , fd , 0);

上面方法没有实现两个进程间的内存共享。

使用以下方式实现了进程间的数据共享。

1>直接使用open("filename", O_RDWR|O_CREAT); 通过文件实现数据共享。

2>ParcelFileDescriptor和Ashmem结合使用。fd = open("/dev/ashmem", O_RDWR)创建出来的fd转化成ParcelFileDescriptor通过aidl传到另一进程。另个进程可以直接使用。

免责声明:文章转载自《android共享内存》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇STM32自己的封装库nginx 流媒体 flv 播放 以及上传大小 配置文件设置下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

异步通知机制的总结

要弄明白这个问题,我们得从最基本的原理开始。我们知道,驱动程序运行在内核空间中,应用程序运行 在用户空间中,两者是不能直接通信的。但在实际应用中,在设备已经准备好的时候,我们希望通知用户 程序设备已经ok,用户程序可以读取了,这样应用程序就不需要一直查询该设备的状态,从而节约了资源 ,这就是异步通知。 好,那下一个问题就来了,这个过程如何实现呢?简单,...

NginxI/O模型理论基础

I/O模型介绍   同步IO        关注的是消息通信机制  调用者需要等待被调用者先执行完毕才能往下继续执行   被调用者在执行完自己的任务后并不会同之调用者执行结果需要调用者自己去获取被调用者的执行状态   异步IO      关注的是消息通信机制     调用者向被调用者发起调用后 被调用者会自动通过状态,通知或者回调机制主动通知调用者自己的运...

android usb adb流程[转]

android adb 概述 android adb的代码分为两部分: kernel层的代码在如下路径: drivers/usb/gadget/f_adb.c drivers/usb/gadget/android.c 他吐给上层应用的是如下的设备节点:/dev/android_adb 应用层的代码在如下路径: system/core/adb目录 针对dev...

Linux串口

可以参考http://www.cnblogs.com/lovemo1314/archive/2010/10/29/1864327.html 《从实践中学嵌入式linux应用程序开发》(华清远见嵌入式学院)第2章、嵌入式文件和I/O编程 设置串口属性的基本流程: 保存原先串口配置 使用tcgetattr(fd,&old_cfg)函数,该函数得到有fd...

[Python之路] 使用epoll实现高并发HTTP服务器

什么是epoll 我们在  Python多种方式实现并发的Web Server 的最后使用单进程+单线程+非阻塞+长连接实现了一个可并发处理客户端连接的服务器。他的原理可以用以下的图来描述: 解释: 1.HTTP服务器是我们使用 单进程+单线程+非阻塞+长连接实现 的web服务器。 2.在实现的时候,我们创建了一个存放已接受Socket连接的列表,该列表...

1、网络基本配置

网络命令 1.traceroute:追踪路由   选项1.1 -g <网关>:设置网关-n:不将IP解析为域名-p <端口>:设置目的端口-s <来源地址>:设置本地送出数据包的IP地址-N <次数>:尝试探测的次数,默认16-i <接口>:指定网络接口   例1.2:从本地追踪到www.16...