在生活中使用APP时经常会看基于支付宝,微信等平台开发的第三方APP,在自己使用的APP中点击某个操作启动支付宝或微信,这就属于进程通信。
android系统是基于linux系统中的进程管理,每一个APP运行在自己的进程中,有自己的安全权限,想与其他进程中的应用通信,必须使用特定的规范技术。
在技术上,android可有以下几种技术实现
1.Intent
使用隐示意图发起调用,如调用系统照相机,bundle封装数据传递,
调用startActivityForResult(intent, requestCode),实现交互数据
2.使用Messenger(其底层使用aidl)
如果你想让你的接口在多个不同的进程间工作,你可以为服务创建一个带有Messenger的接口。在这种情况下,服务将定义一个Handler来响应不同类型的Message对象。这个Handler是Messenger的基础,它可以与客户共享一个IBinder,允许客户使用Message对象向服务发送指令。以此,客户可以定义一个属于自己的Messenger,这样,服务就可以把消息传递回来。
3.使用AIDL
AIDL(Android接口定义语言-Android Interface Definition Language)执行了把一个对象分解到操作系统能理解的基元,并安排它们到各个进程间来完成IPC等所有工作。前文中提到的技术,使用一个Messenger(消息传送器)就是基于AIDL和其下面的结构。如前所述,Messenger创建了一个队列,把所有的请求都放在一个线程中,所以服务一次只接收一个请求。然而,如果想你的服务同时接收多个请求,那么你可以直接创建AIDL。在这种情况下,你的服务必须有能力执行多个纯程,并且为线程安全。
参考文档:
http://wiki.eoeandroid.com/Intents_and_Intent_Filters
http://wiki.eoeandroid.com/Services
http://wiki.eoeandroid.com/Bound_Services
相关文章
android跨进程IPC通信探讨(A应用与B应用通信)之二
相关推荐
Android跨进程IPC通信的常用例子,AIDL,Messenger,Binder
Android IPC多进程通信 aidl
压缩包共包含8个工程,涉及ipc通信,java设计模式,service通信。有需要的朋友可以下载学习。
AIDL:Android Interface Definition Language,即Android接口定义语言,用于生成Android不同进程间进行进程通信(IPC)的代码,一般情况下一个进程是无法访问另一个进程的内存的。如果某些情况下仍然需要跨进程访问内存...
Android进程间通信(IPC)机制Binder简要介绍和学习计划
AIDL----Android进程间通信(IPC)浅析测试代码,注释非常详细
【一图流】_02_一张图看懂 Android 进程间通信(IPC)Binder机制: 此图表述了Android系统_进程间通信(IPC)机制全部体系,其中重点放在 Android系统中 重用 的 Binder机制 上,详尽细致,希望对大家有用;
Android 基于Socket 的IPC通信
这一章使用Messenger实现跨进程通信,其中bindService基础部分参见Android IPC机制绑定Service实现本地通信。 跨进程简介 在介绍使用Messenger跨进程通信之前先要了解以下问题:为什么需要跨进程通信?只有有了需求...
这是一个IPC进程间AIDL方式通信的简单Demo。...目的在于协助该博客讲解binder与service之间跨进程通信机制。所有大家读源码时务必同时读该博客。 http://blog.csdn.net/chenliqiang12345678/article/details/50487284
代码中包含两个应用程序,两者之间通信采用Messenger信使 使用方法:将下载下来的图片后缀名改为.zip,再解压即可得到源代码
介绍关于ipc 进程间通信原理,android中binder运行机制
进程是操作系统的基础之一。一个进程可以认为是一个正在执行的程序。...这个类可以允许我们的应用程序开启一个新的外部程序,并且与这个程序进行通讯。下面我们用一个非常简单的例子开始我们本章有关进程的阐述。
Android中进程间通信(IPC)方式.pdf
android应用程序理所当然可以应用JAVA的IPC机制实现进程间的通信, 取而代之的是Binder通信。Google为什么要采用这种方式呢,这取决于Binder通信方式的高效率。 Binder通信是通过linux的binder driver来实现的。...
android_IPC进程间通信Demo 移动开发 - Android包含两个eclipse工程,客户端和服务端,演示了android在使用Messenger对象和AIDL实现进程间通信.zip
android_IPC进程间通信Demo 移动开发 - Android包含两个eclipse工程,客户端和服务端,演示了android在使用Messenger对象和AIDL实现进程间通信.zip
AndLinker是一款Android上的IPC (进程间通信) 库,结合了AIDL和Retrofit的诸多特性,且可以与RxJava和RxJava2的Call Adapters无缝结合使用。项目的设计与部分代码参考了伟大的Retrofit项目。
代码中包含两个应用程序,两者之间通信采用aidl方案实现 使用方法:将下载下来的图片后缀名改为.zip,再解压即可得到源代码