android ndk机制,我们可以在android NDK代码中使用System IPC吗?

一年前,我写了一篇关于这个话题的调查.这是它的一部分:

2 Unix IPC机制

Unix IPC机制包括:

> Unix信号.

> Unix管道.

> Unix域套接字.

同时Android System-V IPC机制不包含在Android中.

仿生故意不提供对System-V IPC机制的支持,例如

由semget(),shmget(),msgget()提供的.这样做的原因是为了避免拒绝 –

服务[11].

2.1 Unix信号

关于unix信号如何工作的最佳解释之一我们可以在wikipedia找到:“A

信号是一种有限形式的进程间通信,用于Unix,类Unix和

其他符合POSIX标准的操作系统.基本上它是一个异步通知

发送到进程以便通知它发生的事件.当信号是

发送到进程,操作系统中断进程的正常执行流程 –

灰.在任何非原子指令期间都可以中断执行.如果过程有

以前注册了一个信号处理程序,该例程被执行.否则默认

执行信号处理程序.“

似乎unix信号在Android编程中被随后使用.此外,

有些信号在debug mode年被禁用.但是,它可能是IPC

机制.

2.2 Unix管道

Pipe是一种允许直接连接输出流的通信机制

一个进程与另一个进程的输入stread.有两种类型的unix

管道:命名管道和未命名管道.似乎只在Android编程中

使用命名管道.在这种情况下,两个进程使用特殊文件进行交互

连接输出和输入.应该提到管道是单向的

沟通,即一个过程始终是读者,第二个过程始终是作家.

必须在Linux文件系统上创建通信文件,因为sdcard的FAT32

不允许创建管道.以下是如何创建命名的unix管道的示例

并在Android中使用(俄语).可以在here找到此示例的源代码.

2.3 Unix域套接字

Unix域套接字,与unix管道相反,允许传输信息

两种方式:从服务器到客户端,从客户端到服务器. Unix域套接字

和unix管道使用文件系统作为地址名称空间.这意味着服务器和

客户端使用特殊文件建立通信.考虑到Android有两个

用于编程unix域套接字的类:LocalServerSocket和

LocalSocket.所有的实现都可以围绕这两个类构建

不需要使用本机代码来创建unix域套接字.一个简单的例子如何

使用unix域套接字显示为here.

[11] Android ndk文档. android-ndk-r6b的NDK文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值