文档章节

Androd的IPC通信(二)

k
 kim366
发布于 2016/05/13 19:15
字数 368
阅读 11
收藏 0

IPC的IBinder接口--定义与实现

    1.  Android架构的沟通依赖单一的IBinder接口,此时,IPC的Client端调用IBinder的transact()函数,透过IPC机制而调用到远程(remote)的onTransact()函数。

    2.  IBinder定义了一些函数,可以让Client跨进程地调用,最主要的是transact()函数。

    3.  IBinder接口的实现。基于这个IBinder的定义档,我们可以开发类来实现它,并在其他的APP中进行使用,实现进程间的调用。在Android框架中,也基于这个接口类实现了Binder和ProxyBinder基类来实现进程间通信。


Java层的Binder基类定义

     基类Binder的很重要的目的是支持跨进程调用Service, 既允许远程的Client跨进程调用某个Service。


Java层的BinderProxy基类的定义

    当我们看到xxxxProxy的定义时,就应该想到,它是摆在Client端进程里,作为Service端的分身。

    由于跨进程沟通是时,不是从Java层直接调用的,而是通过底层的Binder Driver驱动来沟通的,所以Client端必须通过Proxy的IBinder接口,转而调用JNI本地模块来衔接到底层BinderDriver的驱动服务,进而调用到在另一个进程中运行的Service。

    当Client透过IBinder接口而调用到BinderProxy的transact()函数时,就调用到JNI本地的transact()函数,进而衔接到底层BinderDriver驱动服务。




本文转载自:http://blog.csdn.net/oyangyujun/article/details/47812999

共有 人打赏支持
k
粉丝 1
博文 129
码字总数 0
作品 0
朝阳
私信 提问
Linux环境进程间通信(二)--信号

Linux环境进程间通信(二): 信号(上) www.ibm.com/developerworks/cn/linux/l-ipc/part2/index1.html Linux环境进程间通信(二): 信号(下) www.ibm.com/developerworks/cn/linux/l-ip...

长平狐
2012/09/03
30
0
Android 使用Messenger跨进程通信框架

一.通过Binder绑定形式的通信 上一篇说道Binder机制的通信框架,也说过Messenger的底层实现自AIDL,因此对于跨进程通信中,Messenger是一种比较高级的框架,可以说对于一个app开发者来说重要性...

IamOkay
2014/12/04
0
0
Binder学习(二)Binder机制解析

概述 由于Android是基于Linux内核的操作系统,所以在了解Binder级之前需要先了解一些关于Linux的知识,进程隔离以及虚拟地址: 进程隔离 进程隔离是为保护操作系统中进程互不干扰而设计的一组...

wustor
2017/11/25
0
0
Android Binder面试详解

一、Linux内核的基础知识 1、进程隔离/虚拟地址空间 2、系统调用 3、Linux跨进程通信机制 目前linux支持的IPC包括传统的管道、System V IPC、即消息队列/共享内存/信号量,以及socket中只有s...

千涯秋瑟
2017/12/03
0
0
Webservice 是通过什么协议实现的进程之间通信是怎么搞的

一、Webservice 是通过什么协议实现的以及进程之间通信的协议是什么 WebService到底是什么? http://blog.csdn.net/wooshn/article/details/8069087 二、进程之间通信的方式 为什么要进行进程...

Oscarfff
2015/05/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

day02:管道符、shell及环境变量

1、管道符:"|" 用于将前一个指令的输出作为后一个指令的输入,且管道符后面跟的是命令(针对文档的操作):cat less head tail grep cut sort wc uniq tee tr split sed awk等) [root@localho...

芬野de博客
8分钟前
1
0
Kubernetes系列——Kubernetes 组件、对象(二)

一、Kubernetes 组件 介绍了Kubernetes集群所需的各种二进制组件。 Master 组件 Master组件提供集群的管理控制中心。Master组件可以在集群中任何节点上运行。但是为了简单起见,通常在一...

吴伟祥
18分钟前
0
0
Flink-数据流编程模型

1、抽象等级 Flink提供了不同级别的抽象来开发流/批处理应用程序。 1) 低层级的抽象 最低层次的抽象仅仅提供有状态流。它通过Process函数嵌入到DataStream API中。它允许用户自由地处理来自一...

liwei2000
35分钟前
1
0
Java开发Swing实战JFrame和JTabbedPane容器的用法详细解析

概述: 项目是一个桌面程序,涉及标签和按钮组件、布局管理器组件、面板组件、列表框和下拉框组件等组件,以及Swing事件处理机制。 下面先从最基础的界面开始。 /** * @author: lishuai * @...

金铭鼎IT教育
40分钟前
12
0
flask 之旅

环境 为了正确地跑起来,你的应用需要依赖许多不同的软件。 就算是再怎么否认这一点的人,也无法否认至少需要依赖Flask本身。 你的应用的运行环境,在当你想要让它跑起来时,是至关重要的。 ...

hblt-j
41分钟前
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部