复习:IPC机制
一、为什么需要IPC机制
当我们开启多个进程的时候,我们有时需要和各个进程进行交互。但是进程间的交互就不能够共享对象(就是进程A中创建了一个对象,进程B中的类或者方法不能够直接使用,需要用到IPC机制),不能共享是规定,一个对象只能被一个进程使用。
问:那么为什么需要多进程呢?
Android下的多进程机制:
1、如何创建多进程 小技巧:①、关于进程的命名
2、多进程模式的运行过程
①、JVM 与内存
3、多进程遇到的问题
①、无法共享内存地址的问题 ②、创建JVM的问题
二、如何使用IPC机制
1、Serializable接口
①、作用 ②、机制 ③、使用 ④、小技巧 ⑤、反序列化不成功的问题
问:当User类存在未序列化的引用类型的参数,是否序列化成功
public User implements Serializable{
private String mName;
private String mPsd;
//存在非引用类型的成员变量的时候,反序列化能否成功,该Book类未序列化,与已序列化的情况
private Book book;
}
User
当Book类,未继承Serializable接口的时候,序列化失败。
当Book类,继承接口的时候,序列化成功。
2、Parcelable接口
①、作用 ②、机制 ③、使用 ④、与Serializable的区别
3、跨进程调用
①、AIDL
当一个进程想要暴露给另一个进程访问时,就必须定义这种通信的合约;
Binder:是进程通信的工具
②、IPC机制的流程 弄懂各个方法的作用和工作流程
③、当Service死亡重启的方法
④、如何使用
注意事项:①、Binder线程池与UI线程的切换 ②、线程池无法进行耗时长的工作
③、RemoteCallBack原理:因为返回的数据是经过Parcelable序列化返回的,但是他们的IBinder是不变的,RemoteCallBack保留IBinder,实现解注册
⑤、跨进程通信的其他方法。 1、五种方式 2、各个的优点 3、各个的原理是什么
⑥、服务端调用客户端方法的原理
⑦、当进程死亡时,如何自动重新注册
4、权限验证
①、使用permission (Android permission用法)
在ServiceA利用permission标签设定权限,当B端需要使用ServiceA时候,必须声明A制定的权限。 之后还需要在Service判断,B端调用ServiceA的时候,是否声明了权限,权限验证这是在SerivceA中判断的。
②、在onTransact()方法中
获取调用服务端的客户端的各种信息,指定只有客户端具有特定信息的才可使用(比如,包名以com.chen开头的客户端才能使用)
复习:IPC机制的更多相关文章
- Anciroid的IPC机制-Binder概述
在Linux系统中,是以进程为单位分配和管理资源的.出于保护机制,一个进程不能直接访问另一个进程的资源,也就是说,进程之间互相封闭.但是,在一个复杂的应用系统中,通常会使用多个相关的进程来共同完成一项 ...
- Handler消息机制与Binder IPC机制完全解析
1.Handler消息机制 序列 文章 0 Android消息机制-Handler(framework篇) 1 Android消息机制-Handler(native篇) 2 Android消息机制-H ...
- ndk学习15: IPC机制
Linux IPC机制 来自为知笔记(Wiz)
- Android之IPC机制
Android IPC简介 任何一个操作系统都需要有相应的IPC机制,Linux上可以通过命名通道.共享内存.信号量等来进行进程间通信.Android系统不仅可以使用了Binder机制来实现IPC,还 ...
- IPC机制--Binder
文章来自 Android技术内幕 系统卷 转:http://www.linuxidc.com/Linux/2011-08/40508.htm 什么是IPC机制以及IPC机制的种类 在Linux中,是以 ...
- IPC机制
转:http://blog.chinaunix.net/uid-26125381-id-3206237.html IPC 三种通信机制 2012-05-13 17:23:55 最近看了,IPC三种通 ...
- IPC 机制简介
IPC 机制简介 概述 在Unix早期发展中,做出重大贡献的两大主力Bell实验室和伯克利大学(BSD)在IPC(InterProcess Communication)方面的侧重点有所不同.前者对Un ...
- pipe()管道最基本的IPC机制
<h4>进程间通信 fork pipe pie_t 等用法(管道机制 通信)</h4>每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之 ...
- Android的IPC机制(一)——AIDL的使用
综述 IPC(interprocess communication)是指进程间通信,也就是在两个进程间进行数据交互.不同的操作系统都有他们自己的一套IPC机制.例如在Linux操作系统中可以通过管道. ...
随机推荐
- oracle 时间比较查询
select * from table where add_time>=to_date('2015/01/03','yyyy/mm/dd')
- 基于jQuery UI的tabs选项卡美化
很多朋友对JS望而生畏,但听很多朋友说jQuery很简单,因此开始使用jQuery,使用之后发现,只会写简单的功能,复杂的功能还是不太会写或者总是担心自己写的有性能问题,对前端人员来说只能通过不断学习 ...
- 子元素用margin-top 为什么反而作用在父元素上?对使用margin-top 的元素本身不起作用?
在这个说明中,“collapsing margins”(折叠margin)的意思是:2个或以上盒模型之间(关系可以是相邻或嵌套)相邻的margin属性(这之间不能有非空内容.padding区域.bor ...
- vimdiff: 使用Vim中强大的文件diff功能[转]
学习了一段时间的Vim,直到最近才发现Vim的diff功能是如此方便,对比代码变化再也不用到处去找diff软件或者依靠版本控制的diff了.强大的Vim. 下图是我在macVim中的diff效果. 下 ...
- Lost Cows(BIT poj2182)
Lost Cows Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10609 Accepted: 6797 Descri ...
- 夏宇闻教授谈FPGA工程师的入门学习
1. 必须清楚自己究竟适合不适合做工程师. 看看自己的性格特点,是不是特别安静,又耐得住寂寞.因为FPGA工程师是一个辛苦的工作,不但要通过不断学习研究提升自己的设计水平,还要经常性的熬夜加班敲写代码 ...
- 分布式文件系统 Mogilefs 安装步骤
我这里的环境都是 RHEL 5 的环境. MySQL 数据库 和 tracker 都放到一台服务器上, 为 192.168.2.85 storage server两台, 分别为 192.168.2.9 ...
- mvc和三层架构到底有什么区别
原文地址:http://zhidao.baidu.com/question/82001542.html?qbl=relate_question_3&word=MVC%20%CA%FD%BE%D ...
- 剑指offer-面试题23.从上往下打印二叉树
题目:从上往下打印出二叉树的每个结点,同一层的结点按照从左到右的顺序打印.例如输入图4.5中 的二叉树,则依次打印出8.6.10.5.7.9.11二叉树结点的定义如下: struct BinaryTr ...
- openstack configure
<一,nova.conf配置文件配置 hypervisors compute_driver = 值> 1,kvm/qemu Hypervisor OpenStack nova comput ...