复习: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操作系统中可以通过管道. ...
随机推荐
- 关于onpropertychange与oninput的兼容问题
关于onpropertychange与oninput的用法,网上一大堆,但还是有不兼容的时候,比如说,我想计下,一个input的值改变了多少次,如果写成兼容写法就为 <!doctype html ...
- linux查看占用内存/cpu最高的进程情况
linux查看占用cpu最高的进程 ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head 或者top (然后按下M,注意这里是大写) linux查 ...
- C语言之预处理命令
/**************************************************************************** Title:C之预处理命令 Time:201 ...
- VS2008远程调试方法
在网上找了好多资料才把这个调试环境搭好,下面总结一下: 先说明两个概念: 1. 目标机:远程需要调试的机子,也就是被调试程序exe所在的机子,该机子可以安装VS2008或者不安装vs2008 ...
- 上传form表单
<form name="theForm" method="post" action="index.php?m=back&c=Goods& ...
- H5实现图片优化上传
一,HTML部分 <input type="file" accept="images/*"> <input class="url&q ...
- zabbix监控代理zabbix-proxy
新公司监控用的zabbix,其中用到了zabbix-proxy,原先没有尝试弄过,现在先提前安装看看,以便后续使用查阅. Zabbix-proxy 是一个监控代理服务器,它收集监控到的数据,先存放在缓 ...
- .net如何后台批量删除
button_Click(Sender sender,Event e){foreach (DataListItem item in DataList1.Items){CheckBox cbox=(Ch ...
- Android使用webService
在android中使用webservice,首先要导入Android webservice支持包 ksoap2-android-assembly-3.3.0-jar-with-dependencies ...
- Cisco密码恢复
1.利用超级终端连接路由器,重新启动路由器,按CTRL+BREAK进入ROM监控模式 注:配置寄存器(2B)第六位控制是否读取NVRAM中的配置文件 2.修改配置寄存器:2600系列:1): con ...