android 学习 IPC机制

IPC 进程间通信 inter_process_commuunication
android中开启进程的方法,
在四大组件AndroidMenifest中配置process属性
如 android:process=”:remote”
android:process=”adbh.remote”
上述两种方式,第一种进程名前面加上:时表示以当前应用包名为进程前缀,并且该进程为私有进程,其他应用的组件不能与其处于同一进程中
第二种进程名为完全命名不会加上当前包名作为前缀
该进程属于全局进程,其他应用可以通过ShareUID方式和它处于同一个进程中

当应用中四大组件配置的process属性时带来的变化
*1 application会创建n次(n=进程数量)不同的application运行在不同的虚拟机中
*2 静态成员和单例模式将会失效,因为android会给每个进程分配一个虚拟机,而每个虚拟机对应的内存又不同,所以内存中会存在多个静态成员变量,单例也是一样
*3线程同步也将失效,同2因为用的锁也不同了
*4sharedprefrence将变得不是很可靠,因为sharedprefrence底层是依靠读写xml来进行存储的,当并发写时货并发读时都会出现问题

由于以上原因,不管是同应用或者不同应用,当进程间需要进行通信时,就需要通过其他方法来进行通信了
IPC通信的方式有如下几种

Bundle:通过利用bundle来进行进程间通信
文件共享:如sharedprefrence,
AIDL: 应用范围最广的进程通信方法
Messager: 只能进行串口的访问方式,不能进行高并发,只能一个一个的处理消息
Socket:实现麻烦,适合网络数据间的交换
ContentProvider: 收约束的AIDL主要用于数据共享

Bundle使用及上层原理
通过AIDL来分享Bundle的工作机制
*1 首先新建一个.aidl文件 待续

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值