进程间通信一,管道,管道的限制:(1)半双工,数据只能在一个方向上流动(2)管道一般只在具有公共祖先的进程之间使用,通常一个管道由一个进程创建,然后该进程调用fork()函数,此后父子进程可以使用该管道管道的创建:[cpp]view plaincopy#includeintpipe(intfiled...
分类:
系统相关 时间:
2014-10-26 09:08:35
阅读次数:
289
Binder间进程通信的JAVA层接口,主要是通过JNI方法来调用Binder库的C/C++接口在JAVA层,将Service组件称为JAVA服务,Service组件的代理称为JAVA服务代理。一、ServiceManager的Java层代理对象(ServiceManagerProxy)的获取过程。...
分类:
移动开发 时间:
2014-10-24 18:32:28
阅读次数:
223
ServiceManager,其实也是一个Service,不过它的Server端实现并未使用Binder库的结构实现,而是直接打开binder/dev进行通信的,不具有普遍性。下面以MediaServer中的MediaPlayService为例,说明更加普遍的使用binder通信机制的Service...
分类:
移动开发 时间:
2014-10-24 12:42:13
阅读次数:
161
Service Manager 是Binder进程间通信的核心组件之一: 它扮演者Binder进程间通信上下文(Context Manager)的角色 负责管理系统中的Service组件 向Client组件提供获取代理对象的服务一、Service Manager的启动1、ServiceMana...
分类:
移动开发 时间:
2014-10-23 12:01:25
阅读次数:
180
以下概述Binder通信过程中涉及到的四个对象:Binder本地对象、Binder实体对象、Binder引用对象、Binder代理对象的生死。1、Binder通信的交互过程 1.Client 进程发出进程间通信请求,具体由Client进程中的代理对象通过Binder驱动程序向Server进程中的B....
分类:
移动开发 时间:
2014-10-22 19:55:15
阅读次数:
179
以下内容只大概列个提纲,若要明白其中细节,还请看源码:申明:本人菜鸟,希望得到大神指点一二,余心足已binder 设备:/dev/binderbinder 进程间通信涉及的四个角色:Client Service ServiceManager Binder驱动程序一,Binder驱动程序源码位置:ke...
分类:
移动开发 时间:
2014-10-22 12:41:14
阅读次数:
195
有名管道(FIFO)命名管道也被称为FIFO文件,是一种特殊的文件。由于linux所有的事物都可以被视为文件,所以对命名管道的使用也就变得与文件操作非常统一。(1)创建命名管道用如下两个函数中的其中一个,可以创建命名管道。#include #include int mkfifo(const char...
分类:
系统相关 时间:
2014-10-21 12:14:49
阅读次数:
347
一 消息队列的介绍消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。每个数据块都被认为含有一个类型,接收进程可以独立地接收含有不同类型的数据结构。我们可以通过发送消息来避免命名管道的同步和阻塞问题。Linux用宏MSGMAX和MSGMNB来限制一条消息的最大长度和一个队列的最大长度。◆影...
分类:
系统相关 时间:
2014-10-21 12:00:18
阅读次数:
262
一 进程间通信有如下的目的:1、数据传输,一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几M之间;2、共享数据,多个进程想要操作共享数据,一个进程对数据的修改,其他进程应该立刻看到;3、通知事件,一个进程需要向另一个或一组进程发送消息,通知它们发生了某件事情;4、资源共享,多个进程...
分类:
系统相关 时间:
2014-10-21 11:55:25
阅读次数:
201
一共享内存介绍共享内存可以从字面上去理解,就把一片逻辑内存共享出来,让不同的进程去访问它,修改它。共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常安排为同一段物理内存。进程可以将同一段共享内存连接到它们自己的地址空间中,所有进程都可以访问共享内存中的地...
分类:
系统相关 时间:
2014-10-21 11:53:17
阅读次数:
227