• android共享内存


    在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传到另一进程。另个进程可以直接使用。

  • 相关阅读:
    Spoj 2798 Qtree3
    [HAOI2015]树上操作
    Grass Planting
    [ZJOI2008] 树的统计Count
    Spoj375 Qtree--树链剖分
    [HNOI2012]永无乡
    雨天的尾巴
    temp
    线段树动态开点之逆序对
    线段树动态开点
  • 原文地址:https://www.cnblogs.com/Neu400753645/p/5541440.html
Copyright © 2020-2023  润新知