IPC机制
神坑小白
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Android 中的 IPC 方式(一) Bundle 和文件共享
1. Bundle我们知道,四大组件中的三大组件(Activity、Service、BroadcastReceiver)都是支持 Intent 中传递 Bundle 数据的,由于 Bundle 实现了 Parcelable 接口,所以它可以方便的在进程间传输。基于这一点,当我们在一个进程中启动了另一个进程的 Activity、Service 或者 BroadcastReceiver,我肯就可以...原创 2018-09-11 13:36:31 · 386 阅读 · 0 评论 -
IPC 机制(一)之 Android 中的多进程模式
在正式介绍进程间通信之前,我们必须先要理解 Android 中的多进程模式。通过给四大组件指定 android:process 属性,我们就可以轻松地开启多进程模式,这看起来很简单,但是实际使用过程中却暗藏杀机,1.开启多进程模式正常情况下,在 Android 中多进程是指在一个应用中存在多个进程的情况,因此这里就不讨论两个应用之间的多进程情况了。首先,在 Android 中使用多进程只有...原创 2018-09-07 10:51:26 · 444 阅读 · 0 评论 -
Android 中的 IPC 方式(二) Messenger
Messenger 可以翻译为信使,顾名思义,通过它可以在不同进程中传递 Message 对象,在 Message 中加入我们需要传递的数据,就可以轻松地实现数据的进程间传递了。Messenger 是一种轻量的 IPC 方案,它的底层实现是 AIDL,下面是 Messenger 的两个构造,从构造方法的实现上我们可以明显看出 AIDL 的痕迹,不管是 Messenger 还是 Stub.asInt...原创 2018-09-12 15:28:59 · 269 阅读 · 0 评论 -
Android 中的 IPC 方式(三) AIDL
上一篇文章我们介绍了 Messenger 如何来实进程间通信的方法,我们可以发现,Messenger 是以单行的方式处理客户端发来的消息的,如果大量的消息同时发送到服务端,服务端仍然只能一个个处理,如果有大量的并发请求,那么用 Messenger 就不太合适了。同时,Messenger 的作用主要是用来传递消息,很多时候我们可能需要跨进程调用服务端的方法,这个情形用 Messenger 就无法实现...原创 2018-09-12 17:19:19 · 323 阅读 · 0 评论 -
Android 中的 IPC 方式(四) ContentProvider
ContentProvider 是 Android 中提供的专门用于不同应用间进行数据共享的方式,从这一点来看,它天生就适合进程间通信。和 Messenger 一样,ContentProvider 的底层实现也是 Binder,由此可见,Binder 在 Android 系统中是何等重要。虽然 ContentProvider 的底层是 Binder,但是它的使用过程要比 AIDL 简单的多,这是因...原创 2018-09-17 13:41:49 · 344 阅读 · 0 评论 -
Android 中的 IPC 方式(五) Socket
Socket 也称为“套接字”,是网络通信中的概念,它分为流式套接字和用户数据报套接字两种,分别对应网络的传输控制层中的 TCP 和 UDP 协议,TCP 协议是面向连接的协议,提供稳定的双向功能,TCP 链接的建立经过“三次握手”才能完成,为了提供稳定的数据传输功能,其本身提供了超时重传机制,因此具有很高的稳定性;而 UDP 是无连接的,提供不稳定的单向连接功能,当然 UDP 也可以实现双向通信...原创 2018-09-17 16:59:13 · 607 阅读 · 0 评论 -
IPC 机制(二)之 IPC 基础概念介绍
在开启本篇文章之前先来说下为什么我们要实现序列化:Android 不同的进程都有自己独立的内存空间,且相互之间不能进行访问。如果像我们平常传一个句柄的方式去传值的话肯定是失败的,因为句柄也是指定内存空间的一个区域。现在进程无法访问目标进程的内存空间,所以句柄传过去也是没有用的。所以我们必须将要传输的数据转换成能够在内存空间流通的形式。这个转化过程就叫做序列化和反序列化。 简单来说是这样的:...原创 2018-09-07 17:29:58 · 915 阅读 · 0 评论 -
Android 中的 IPC 方式(六) Binder 连接池和选用合适的 IPC 方法
1. Binder 连接池通过前面几篇文章的介绍,我们知道,不同的 IPC 方式有不同的特点和适用场景。在这篇文章中,我们在介绍下 AIDL,原因是 AIDL 是一种最常用的进程间通信方式,是日常开发中进程间通信的首选,所以我们需要额外强调一下。如何使用 AIDL 我们在前面已经介绍完了,这里在回顾一下它的大致流程,首先创建一个 Service 和一个 AIDL 接口,接着创建一个类继承自...原创 2018-09-18 16:06:48 · 315 阅读 · 0 评论
分享