ipc的理解

ipc即进程间通信,inter process communication。

ipc是多种进程间通信的统称而已。

ipc进程间通信包括

  1 bundler,在Android 中的四大组件中的  activity  broadcast receiver  service都是能够通过intent传递bundle数据的,bundle实现了parcelable接口。

  2 通过messager 通过它可以在不同进程中传递Message对象,在Message中放入我们需要传递的数据,就可以轻松地实现数据的进程间传递。

     Messenger是一种轻量级的IPC方案,它的底层实现是AIDL,实现Messenger有以下两个步骤,分为服务端进程和客户端进程。

  3 使用IDLE,这是一种远程服务跨进程通信的方式

  4 content-provider 用于不同应用间的数据共享。底层实现的是binder。

  5 socket ,可以实现任意两个终端的通信,这里使用的是socket在一个设备上进行进程间通信。

  6 binder ,从ipc角度来讲,是进程间的通信。在应用层的角度来讲就是客户端和服务端的通信。

 

 

Binder是Android中的一个类,它实现于IBinder接口。从IPC角度来说,Binder是一种跨进程通信的方式。从Android应用层来说,Binder是客户端与服务端通信的桥梁,

通过bindService,服务端会返回一个包含了服务端业务调用的Binder对象,通过这个Binder对象,客户端就可以获取服务端提供的服务或者数据。这里的服务包括普通服务及基于AIDL的服务。在Android开发中,Binder主要应用于Service。 

 

为何传输要实现parcelable

Intent不仅能传递java基本数据类型,还能传递类的对象,前提是这些类必须实现Serializable或者Parcelable接口。

  实现Serializable接口的方式是通过对象的序列化和反序列化来实现对象传递的。

  实现Parcelable接口的方式是通过writeToParcel将你的对象映射成
Parcel对象,再通过createFromParcel将Parcel对象映射成你的对象。也可以将Parcel看成是一个流,通过
writeToParcel把对象写到流里面,在通过createFromParcel从流里读取对象,只不过这个过程需要你来实现,因此写的顺序和读的
顺序必须一致。

参考了 https://www.cnblogs.com/cr330326/p/6340958.html

            http://blog.csdn.net/huivs12/article/details/49076261

 在此感谢

转载于:https://www.cnblogs.com/a1070022846/p/7856886.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值