Android中的IPC通信(一)

Wesley13
• 阅读 875

IPC的概念

   IPC: Inter Process Communication,进程间通信。

   短程通信: 一般而言,应用程序的组件都是在一个进程内部里执行,这种在同一进程内的通信就称为短程通信。

   远程通信: 两个组件分别在不同的进程里执行,这种不同进程间组件的通信方式就被称为远程通信。

IPC通信的效率

   1. 当我们启动某一个应用程序的时候,系统的Zygote服务就会孵化一个新的进程给它,然后将这个新启动的应用加载到这个进程里面。

   2. 基于Linux的安全限制,以及进程的基本特性(例如,不同的进程之间,地址空间是相对独立的),如果两个类在一个进程里执行,则两者沟通方便也快速。

   3. 但是如果两者在不同的进程里时,两者的沟通就属于IPC通信,效率和速度都不如进程内方便。

Android的进程概念

    1. 一个进程是一个独立的执行空间,不会被执行在其他进程里的程序所侵犯。这种机制是Android的重要安全机制,所以需要先了解进程的内涵,才能进行IPC通信。

    2. 在Android的进程里有一个虚拟机对象,可以执行Java代码,也可以引导本地JNI代码的执行,实现java和C/C++之间的沟通。

          Android中的IPC通信(一)

    3.  每个进程在诞生时,都会诞生一个主线程,以及诞生一个Looper类的对象和一个MessageQueue数据结构。每当主线程做完事情,就回去执行Looper类,并不断观察MQ的动态。

设定IPC通信

1. 通常一个进程只会操作一个应用程序,但是,一个应用程序可以占用多个进程。通过设定组件的android:process属性可以实现这一点。

点赞
收藏
评论区
推荐文章
红橙Darren 红橙Darren
3年前
JNI 基础 - Android 共享内存的序列化过程
1.进程间的通信方式有哪些2.binder和socket通信的区别有哪些3.Android为什么在大部分场景下用Binder进行进程间通信4.Serializable和Parcelable之间的区别5.Parcelable序列化和反序列化的具体过程不知道大家在面试中的过程中,有没有碰到上面类似的问题,我在腾讯和oppo面试的
Bill78 Bill78
3年前
python进程间通信
1python提供了多种进程通信的方式,主要Queue和Pipe这两种方式,Queue用于多个进程间实现通信,Pipe是两个进程的通信1.1Queue有两个方法:Put方法:以插入数据到队列中,他还有两
Stella981 Stella981
3年前
Android Binder 设计与实现
关键词BinderAndroidIPCLinux内核驱动摘要Binder是Android系统进程间通信(IPC)方式之一。Linux已经拥有管道,systemVIPC,socket等IPC手段,却还要倚赖Binder来实现进程间通信,说明Binder具有无可比拟的优势。深入了解Binder并将之与传统IPC做
Wesley13 Wesley13
3年前
Android的Binder机制浅析
1\.引言 一般实际的软件系统中进程间通信(IPC)的实现方法有命名管道(namedpipe),共享内存(sharedmemory),消息队列(messagequeue),Socket等方法。在Android的框架(Framework)中,以Binder作为框架内进程间(通常如服务和客户间)通信的主要实现手段。这可能是出于效
Stella981 Stella981
3年前
Android IPC(跨进程通信)之AIDL
AndroidIPC(跨进程通信)之AIDLIPC——跨进程通信,是指两个进程之间的数据交换过程。在说IPC的同时我们要知道什么是进程,什么是线程。线程是CPU调度的最小单元,进程可以理解为一个程序或者一个应用。一个进程中可以运行多个线程,而在Android程序中有一个主线程,也叫UI线程。在And
Stella981 Stella981
3年前
Linux下Socket编程实验资料摘录及手记
//服务端//boolcreate();intm\_sock1;//domain:说明我们网络程序所在的主机采用的通讯协族(AF\_UNIX和AF\_INET等).AF\_UNIX只能够用于单一的Unix系统进程间通信,而AF\_INET是针对Internet的,因而可以允许在远程主机之间通信//type:我们
Stella981 Stella981
3年前
Linux环境进程间通信
Linux环境进程间通信(一)(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.ibm.com%2Fdeveloperworks%2Fcn%2Flinux%2Flipc%2Fpart1%2Findex.html)http://www.ibm.com/develope
Stella981 Stella981
3年前
Linux进程间的通信方式和原理
进程的概念进程是操作系统的概念,每当我们执行一个程序时,对于操作系统来讲就创建了一个进程,在这个过程中,伴随着资源的分配和释放。可以认为进程是一个程序的一次执行过程。进程通信的概念进程用户空间是相互独立的,一般而言是不能相互访问的。但很多情况下进程间需要互相通信,来完成系统的某项功能。进程通过与内核及其
Stella981 Stella981
3年前
Linux进程间通信(上)之管道、消息队列实践
1、进程间通信简述进程间通信的几种方式:无名管道、有名管道、消息队列、共享内存、信号、信号量、套接字(socket)。进程间通信是不同进程直接进行的一些接触,这种接触有简单,有复杂。机制不同,复杂度也不同。通信是一个广义上的意义,不仅指大批量数据传送,还包括控制信息的传送,但是使用的方法都是大同小异的。!(https
Wesley13 Wesley13
3年前
linux管道
管道是单向的字节流,它将某个进程的标准输出连接到另一个进程的标准输入。管道和有名管道是最早的进程间通信机制之一,管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信。管道和有名管道的读写规则是在程序中应用它们的关键。管道相关的概念在linux中管道是通过指向同