简单了解进程间通讯的一些基本知识

  • 什么是进程间通讯
    进程间通讯,简称IPC是Inter-process Communication的缩写,顾名思义,两个进程间进行数据的交换的过程就是进程间通讯
    在Android中使用多进程只有一种方法,就是给四大组件在AndroidMenifest中指定android:process属性

  • Android中IPC方式
    (1)使用Bundle
    四大组件中的三大组件都支持Intent中传递Bundle数据,由于Bundle实现了Parcelable接口,所以它可以方便的在不同进程间传输,但是,传递的数据必须是可被序列化的数据,比如基本类型和实现了Parcelable接口的对象
    (2)使用文件共享
    文件共享,是通过两个进程读写同一个文件来实现数据的交换,
    主要有两个步骤:a,在线程中实例化一个序列化对象 b,把序列化对象写入到ObjectoutputStream
    (3)使用Messager(信使)轻量级的IPC方式,在Messager中放入我们需要传递的数据就可以轻松实现,
    (4)使用ContentProvider
    ContentProvider是Android系统提供的进程间通讯的方式
    创建自定义ContentProvider步骤
    a,继承自ContentProvider接口,并重写六个方法
    b,注册这个provider,在Menifest中声明标签,指明name,authorities属性,其中authorities是ContentProvider的唯一标识,通过这个属性,外部可以访问,
    c,在另一个程序中,通过getContentReslover().query的方法查询数据。
    (5)使用Socket
    (6)使用AIDL

  • 多进程中容易出现的问题
    a,静态变量和单列模式完全失效
    b,线程同步机制完全失效
    c,SharedPreference的可靠性下降
    d,Application会多次创建

  • Serializable和Parcelable的区别
    Serializable和Parcelable都可以实现对象的序列化,并且都能用于Intent之间的数据传递,Serializable是java中的序列化接口,使用简单,但开销大,序列化与反序列化都需要大量的IO操作,Parcelable是Android中序列化的方式,虽使用起来稍麻烦,但效率高

以上是我在《Android开发艺术探索》中看到的一些关于进程间通讯的知识,简单的做了个了解,由于技术水平不够,好多还看不懂,先把能够理解的记下来

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值