Android实现IPC可使用Android本身提供的AIDL机制。网上也有很多相关文章,但写的过于繁琐和麻烦,重点也不突出。本文抽丝剥茧从工程角度给出一个最简单的Android AIDL例程关键代码,以最简单的形式说明如何在代码中使用Android AIDL。
AIDL首先在逻辑上可分为“服务端”和“客户端”。在本示例中,则以两个完全不同、互相独立的Eclipse 项目代表。
(1)serv...
分类:
移动开发 时间:
2015-02-18 16:28:23
阅读次数:
275
Parcel其翻译为“包袱”、“包裹”。在Android系统中Binder进程间通信(IPC)中经常使用到Parcel类对象来实现客户端和服务端的数据交互,而AIDL技术也是通过Parcel来实现交互。
查阅Android源码Parcel类,其中常用方法有
obtain() 获得一个新的parcel对象,相当于java中new一个对象
dataSize() 得到当前parcel对象的...
分类:
其他好文 时间:
2015-02-13 11:44:50
阅读次数:
257
EventBus使得组件之间的发布-订阅式的通信,而无需组件与另一个(因此要注意对方的),明确登记。它的设计完全使用明确的登记,以取代传统的Java过程中的事件分发。它是不是一个通用的发布-订阅系统中,也不旨在用于进程间通信。
//类通常由注册
地方在初始化过程中
eventBus 。注册(新 EventBusChangeRecorder ());
//要晚得多
...
分类:
其他好文 时间:
2015-02-11 16:44:54
阅读次数:
193
基本操作命令:ps -ajx/-aux/-ef 查看进程间状态/的相互关系top 动态显示系统中的进程nice 按照指定的优先级运行 /renice 改变正在运行的进程的优先级kill -9杀死进程jobs 查看后台进程数进程的结构、类型、状态、模式0.Linux中进程包括三段:(1)数据段。存放的...
分类:
系统相关 时间:
2015-02-10 15:09:42
阅读次数:
175
这里的信号量主要是在不同的进程之间使用。
需要四个操作
P操作
V操作
以及通过semctl调用command参数设置SETVAL来初始化信号量,在使用信号量之前必须要这么做.
并且可以通过semctl调用command设置为IPC_RMID来删除信号量ID:
因为库里没有定义union semun,因此需要自己定义.用到信号量的三个函数
semget 用来创建一个新信号量或者取得一个已有信号...
分类:
系统相关 时间:
2015-02-09 02:00:54
阅读次数:
238
一、Server和Service Manager进程间通信 Service Manager进程启动时,已经创建了Service Manager实体对象,没有Service Manager本地对象。 Server首先获取了Server代理对象,句柄值为0。没有Server引用对象。 ...
分类:
系统相关 时间:
2015-02-08 20:37:24
阅读次数:
201
这两天学习的东西有点多,感觉完全应付不过来了 ,一直在消化这几天学习的东西所以2号、3号、4号的学习内容没有及时总结,在此表示深深的愧疚,今天把这些天学习的知识点汇总一下。
主要学习了IPC进程间通信,目前我所理解的IPC主要包括管道、共享内存、信号量。
总结IPC前先复习一下多进程:
一、进程创建:
1、system函数
通过调用shell程序/bin/sh –c来执行string所...
分类:
系统相关 时间:
2015-02-06 09:35:52
阅读次数:
279
共享存储允许两个或多个进程共享一给定的存储区。因为数据不需要在客户机和服务器之间复制,所以这是最快的一种I P C。使用共享存储的唯一窍门是多个进程之间对一给定存储区的同步(互斥访问)存取。若服务器将数据放入共享存储区,则在服务器做完这一操作之前,客户机不应当去取这些数据共享内存创建过程:1:获取I...
分类:
系统相关 时间:
2015-02-03 22:51:08
阅读次数:
166
定义:信号量是一个计数器,用于多进程对共享数据对象的存取访问控制。为了获得共享资源,进程需要执行下列操作信号量使用步骤:1:初始化信号量---->int sem_init(sem_t *sem, int pshared, unsigned int value);2:申请资源,并对信号量做减一操作--...
分类:
系统相关 时间:
2015-02-03 20:58:35
阅读次数:
219