Android_原理篇_进程间通信

有人问我怎么做到进程保活,之前我不说什么,但7.0、8.0以后别想指望在应用层做到,除非你root机器,篡改framework或者底层配置自定义的process,烧录,否则都是瞎扯,别看网上的所谓这些文章,都是2-3年前的手法,现在一个也没用google干什么吃的,这种流氓行为就是系统开发商严厉打击的对象!

扯远了,今天讲下Android进程之间的通讯

一、什么是进程:操作系统中独立运行在各内存空间的应用,并且有严格的机制来防止进程间的非法访问。

并不代表进程间不允许互相通信,相反这应用的非常广泛。

二、进程间通讯:广义的讲,进程间通信(Inter-process communication, IPC)是指运行在不同进程(不论是否在同一台机器)中的若干线程间的数据交换。

从这个定义可以看到:

·IPC中参与通信的进程既可以运行在同一台机器,也允许他们存在各自的设备环境中(RPC)。如果进程是跨机器的,则通常由网络连接在一起。

·实现的方式多种多样。原则上,任何跨进程的数据交换都可以称为进程间通信。除了传统意义上的消息传递、管道等,还可以使用一些简单的方法实现对性能要求不高的进程通信。比如:

1)文件共享

比如两个进程间约定以磁盘上的某个文件作为信息交互的媒介。这种情况,特别注意访问共享文件时的同步问题。

2)操作系统提供的公共信息机制

比如Windows上的注册表对于所有进城来说都是可以访问的,因而在特定的情况下也能作为进程间信息交换平台。

虽然各种操作系统采用的进程间通信机制可以说是五花八门,但以下的几种确是因高效、稳定等优点而被几乎所有的操作系统广泛应用。

三、进程通信机制分类

1、共享内存(Shared Memory)

共享内存是一种常见的进程间通信机制。由于两个进程可以直接共享访问同一块内存区域,减少数据的复制操作,因而速度上优势比较明显。实现共享内存一般以下几步:


如图:

step1:创建内存共享区

进程1首先通过系统提供的API从内存中申请一块共享区域---比如Linux可以通过shmget实现。生成的共享内存将在特定的key(即shmget的第一个参数)进行绑定。

step2:映射内存共享区

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值