继续上篇的分析,接下来是第三个问题”Service与其客户端的绑定如何实现,即跨进程调用问题“在这里会看到很多的跨进程操作。
流程之前已经分析过了,这里只是突出binder对象的来源过程。
到这里Android中的服务已经简要的分析了一下,不可能面面俱到也不会全都正确,还请大家多多指教。...
分类:
移动开发 时间:
2014-12-17 21:04:03
阅读次数:
261
vfork and fork
两个函数都是用于创建子进程。
区别: 1. vfork 在子进程调用exec之前,它在父进程的空间中进行。
2. vfork 保证子进程先运行,在调用exec之后父进程才开始运行。
#include
#include
int main(int argc, char *argv[])
{
int pid,varble =...
分类:
其他好文 时间:
2014-12-17 16:32:19
阅读次数:
134
非阻塞式的 I/O 是进程调用 I/O 操作时,若数据未准备就绪,则立即返回一个 EWOULDBLOCK 错误,在数据准备就绪之前,应用进程采用轮询的方式检查数据是否准备就绪。直到数据准备就绪,则内核把该数据复制到应用进程的缓冲区,完成数据复制之前进程处于阻塞状态,直到数据复制完成后才返回。即 I/O 操作第一阶段处于轮询检查状态,第二阶段处于阻塞状态。...
分类:
其他好文 时间:
2014-12-17 09:07:32
阅读次数:
251
1.什么是僵尸进程
如果父进程在子进程之前终止,则所有的子进程的父进程都会改变为init进程,我们称这些进程由init进程领养。这时使用ps命令查看后可以看到子进程的父进程ppid已经变为了1。
而当子进程在父进程之前终止时,内核为每个终止子进程保存了一定量的信息,所以当终止进程的父进程调用wait或waitpid时,可以得到这些信息。这些信息至少包括进...
分类:
系统相关 时间:
2014-12-16 17:04:39
阅读次数:
233
在前面的文章中介绍了五种 I/O 模型《I/O 模型》,这里介绍 I/O 模型中 I/O 多路复用在 TCP 套接字编程中的使用。在 I/O 多路复用中主要是 select 和 poll 函数的使用。
select 函数
该函数允许进程指示内核等待多个事件中的任何一个发生,并只在一个或多个事件发生或超过指定时间后才被唤醒。进程调用 select 函数是告知内核,进程对哪些描述...
分类:
其他好文 时间:
2014-12-13 17:57:48
阅读次数:
166
在分析 I/O 模型之前,首先了解 同步 I/O 和 异步 I/O 的基本概念:
同步 I/O:进程调用 I/O 操作函数时,在 I/O 操作函数返回之前,该进程会被挂起(即阻塞),直到 I/O 操作完成后返回;
异步 I/O:进程调用 I/O 操作函数时,在 I/O 操作函数返回之前,该进程不会被挂起(即不阻塞),当 I/O 操作完成后会通知方式告知进程;
在 Unix 系统中主要有 5 种 I/O 模型:阻塞式 I/O;非阻塞式 I/O;I/O 多路复用;信号驱动式 I/O;异步 I/O;
一般一个输入...
分类:
其他好文 时间:
2014-12-13 13:31:12
阅读次数:
188
本文介绍malloc的实现及其malloc在进行堆扩展操作,并分析了虚拟地址到物理地址是如何实现映射关系。
每当进程调用malloc,首先会在该堆缓冲区寻找足够大小的内存块分配给进程(选择缓冲区中的那个块就有首次命中和最佳命中两种算法)。如果freechunklist已无法满足需求的chunk时,那么malloc会通过调用系统调用brk()将进程空间的堆进行扩展,在新扩展的堆空间上建立一个新的chunk并加入到freelist中,这个过程相当于进程批量想系统申请一块内存(大小可能比实际需求大得多)。...
分类:
系统相关 时间:
2014-12-02 00:14:21
阅读次数:
404
1.较为简单的.exe程序可采用进程调用Process.Start("D:\\emr\\emras.exe",para);解析:参数1为.exe的存放路径,参数2为.exe的执行参数2.如果.exe程序中还有其他调用,则上述方法可能在运行过程中报错。这种情况下,可采用直接调用cmd的执行方式[DllImport("kernel32.dll")]publ..
分类:
Web程序 时间:
2014-11-27 18:39:38
阅读次数:
178
一、fork入门知识一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。 一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代...
分类:
其他好文 时间:
2014-11-26 16:23:36
阅读次数:
267
用过Robotium做Android自动化测试的同学都知道,Robotium因为继承了instrumentation而无法进行跨进程的调用,比如模拟按键点击(据说4.3以后instrumentation有了getUIAutomator的入口,然后就木有然后了,本人没有亲试且不在本文讨论中)。本人亲试...
分类:
系统相关 时间:
2014-11-14 10:40:58
阅读次数:
783