
IPC
文章平均质量分 89
從前以後
这个作者很懒,什么都没留下…
展开
-
IPC(二)初识进程和Binder
*什么是IPC通信 IPC(Inter-Process Communication)通信,是跨越两个不同进程(Process)之通信,一般而言,一个Android应用程序里的各组件(如Activity、Service等)都在同一个进程里执行。这种在同一进程内的通信,又称为短程通信,意味着,两个Activity在同一个进程(Process)里执行。相对地,远程(Remote)通信的意原创 2016-04-06 10:58:44 · 1771 阅读 · 0 评论 -
IPC(一)利用纯Binder通信(非aidl)
在Android中,当两个类都在同一个进程里执行时,两者之间的沟通,只要采取一般的函数调用(Function Call)就行了,既快速又方便。一旦两个类分别在不同的进程里执行时,两者之间的沟通,就不能采取一般的函数调用途径了。只好采取IPC沟通途径。Android框架的IPC沟通仰赖单一的IBinder接口。此时Client端调用IBinder接口的transact()函数,透过IPC机制而调用到远原创 2016-03-25 10:07:37 · 1507 阅读 · 1 评论 -
IPC(五)——浅谈AIDL的架构原理
在 IPC(一)利用纯Binder通信(非aidl)中实现了,如何通过纯粹的Binder实现进程间的通信。然后在IPC(四)_Aidl的基本使用过程实现了如何通过Aidl实现进程间的通信。翻看代码的编写过程,其实大体上都差不多,而且也提到Aidl实质上就是对纯Binder通信进行了一次封装,毕竟IBinder中的transact()方法传递的参数不方便使用,大大增加了开发者的使用负担。于是Googl原创 2016-04-13 15:39:40 · 1123 阅读 · 0 评论 -
IPC(四)_Aidl的基本使用过程
AIDL全称 Android Interface definition language的缩写,顾名思义,它是一种android内部进程通信接口的描述语言,通过它我们可以定义进程间的通信接口. 下面是AIDL的详细使用过程。 简单起见,就完成一个客户端调用服务端,完成一次两个数加法的运算。 首先新建一个工程Server,然后规范起见,创建一个单独的.aidl的包。右键新建文件,创建一个.aid原创 2016-04-13 10:30:44 · 571 阅读 · 0 评论 -
IPC(三)浅析Binder进程通信和ServiceManager
Binder机制是Android中实现的进程间通信的架构,它采用的是C-S架构,Client通过代理完成对Server的调用。既然是C-S模式,那么谁是Server呢?答案就是Native中的进程:ServiceManager。 顾名思义,这个是用来管理所有Server的。Android设备在硬件启动之后,第一个进程就是init进程,init进程启动之后,会启动另外一系列的进程,其中最重要的就是Z原创 2016-04-11 15:46:11 · 848 阅读 · 0 评论 -
BroadcastReceiver中的那些设计模式
前文写过BroadCastReceiver的源码的分析BroadcastReceiver源码解析(二),文章很长终于把广播的注册和发送流程详细的分析了一遍。最近用RationalRose画了画它的类图,于是将BroadCastReceiver中涉及的设计模式分析分析,准备再扒一层。 由于技术水平有限,研究了BroadCastReceiver的过程中,目前只发现涉及到了三种设计模式,分别为观察者,代原创 2016-05-25 16:02:35 · 5330 阅读 · 0 评论 -
IPC(六)—一张图解释Messenger的设计思想
Aidl和Messanger是Android 中常用的IPC方式。首先,Aidl内部是基于Binder的,而Messenger内部又是基于Aidl的。但是messenger和Aidl还是有所区别的。 学习Aidl的时候常会看到: “Using AIDL is necessary only if you allow clients from different applications to ac原创 2016-04-15 12:01:01 · 858 阅读 · 0 评论