博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android Native IPC 方案支持情况
阅读量:5266 次
发布时间:2019-06-14

本文共 960 字,大约阅读时间需要 3 分钟。

  1. Binder - 不支持Native层的binder
  2. 内存共享 - 不支持
  3. 信号量(信号灯) - 不支持
  4. 消息队列 - 不支持
  5. 信号 - 支持,但是不能用sigqueue传消息,只能用来安装信号,可以用来收集Native Crash日志
  6. 管道 - 匿名管道,支持
  7. 管道 - FIFO,支持
  8. socket - 支持

[参考资料] 为何binder在native不受支持

为何不支持内存共享、消息队列、信号量 ,参见

管道可用,参见

Android源代码中的文档说明:

(该文件在Android4。3中似乎已经移出该文档)

Android does not support System V IPCs, i.e. the facilities provided by thefollowing standard Posix headers:  
/* SysV semaphores */
/* SysV shared memory segments */
/* SysV message queues */
/* General IPC definitions */The reason for this is due to the fact that, by design, they lead to globalkernel resource leakage.

原因就是防止内核资源泄露。

另外:fork()也尽量不要用。

道理很简单:我们不应该控制android的底层,这些api会造成系统的不稳定。

 

“Bear in mind that the Dalvik VM doesn't like fork() much, and goes into conniptions if you try to do *any* work between the fork() and the exec(). ”

转载于:https://www.cnblogs.com/qiengo/p/5659221.html

你可能感兴趣的文章
exit和return的区别
查看>>
Python(软件目录结构规范)
查看>>
c++||template
查看>>
条件断点 符号断点
查看>>
Dreamweaver cc新版本css单行显示
查看>>
Java基础教程——网络基础知识
查看>>
Kruskal基础最小生成树
查看>>
【hdu 1429】胜利大逃亡(续)
查看>>
javascript之Style物
查看>>
Factory Design Pattern
查看>>
P1192-台阶问题
查看>>
Java线程面试题
查看>>
【BZOJ4516】生成魔咒(后缀自动机)
查看>>
提高PHP性能的10条建议
查看>>
Java大数——a^b + b^a
查看>>
简单的数据库操作
查看>>
帧的最小长度 CSMA/CD
查看>>
树状数组及其他特别简单的扩展
查看>>
普通求素数和线性筛素数
查看>>
PHP截取中英文混合字符
查看>>