Android中的IPC通信(一)

IPC的概念

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

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

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

IPC通信的效率

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

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

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

Android的进程概念

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

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

          

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

设定IPC通信

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

点赞
收藏

评论区

加载中...

相关推荐

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

JNI 基础 - Android 共享内存的序列化过程

1.进程间的通信方式有哪些2.binder和socket通信的区别有哪些3.Android为什么在大部分场景下用Binder进行进程间通信4.Serializable和Parcelable之间的区别5.Parcelable序列化和反序列化的具体过程不知道大家在面试中的过程中,有没有碰到上面类似的问题,我在腾讯和oppo面试的

python进程间通信

1python提供了多种进程通信的方式,主要Queue和Pipe这两种方式,Queue用于多个进程间实现通信,Pipe是两个进程的通信1.1Queue有两个方法:Put方法:以插入数据到队列中,他还有两

Android Binder 设计与实现

关键词BinderAndroidIPCLinux内核驱动摘要Binder是Android系统进程间通信(IPC)方式之一。Linux已经拥有管道,systemVIPC,socket等IPC手段,却还要倚赖Binder来实现进程间通信,说明Binder具有无可比拟的优势。深入了解Binder并将之与传统IPC做

Android的Binder机制浅析

1\.引言 一般实际的软件系统中进程间通信(IPC)的实现方法有命名管道(namedpipe),共享内存(sharedmemory),消息队列(messagequeue),Socket等方法。在Android的框架(Framework)中,以Binder作为框架内进程间(通常如服务和客户间)通信的主要实现手段。这可能是出于效

Android IPC(跨进程通信)之AIDL

AndroidIPC(跨进程通信)之AIDLIPC——跨进程通信,是指两个进程之间的数据交换过程。在说IPC的同时我们要知道什么是进程,什么是线程。线程是CPU调度的最小单元,进程可以理解为一个程序或者一个应用。一个进程中可以运行多个线程,而在Android程序中有一个主线程,也叫UI线程。在And