上一个星期看刚哥的书,主要进行了Android中IPC机制的学习,具体的实现方式网上有很多,我这里只是进行简单的总结。    Android中不同的进程中的组件,拥有独立的虚拟机,Application,以及内存空间,所以不能通过共享内存来进行数据交互。下面几种方法却可以实现数据交互。    介绍之前有必要了解一下IPC和RPC的区别:RPC强调的是调用、即一个进程直接调用另外一个进程中的方法,    而IPC仅仅完成进程间的互通信、没有函数调用功能。RPC其实就是添加了进程间函数调用功能的IPC。
  1. Bundle的使用
public final class Bundle extends BaseBundle implements Cloneable, Parcelable 

可以看到Bundle实现了Parcelable 接口。
优点:简单易用
缺点:只能传递Bundle支持的数据类型
使用场景:四大组件间的进程通讯

2.文件共享
优点:简单易用
缺点:不适合高并发的场景,不能做到即时通讯。
使用场景:无并发访问的情景,简单的交换数据,实时性要求不高。

3.AIDI
优点:功能强大,支持一对多并发通信,支持实时通信。
缺点:一定要处理好线程同步的问题
使用场景:一对多进行通讯,有RPC(远程过程调用协议)的需求

4.Messenger(信使)
优点:功能一般,支持一对多串行通信,支持实时通信。
缺点:不能很好的处理高并发场景,不支持RPC,数据通过Message进行传输,因此只能支持Bundle支持的数据类型。
使用场景:低并发的一对多的实时通讯,没有RPC的需求或者说没有返回结果的RPC(不调用服务端的相关方法)

5.ContentProvider
优点:主要用于数据访问,支持一对多的并发数据共享。
缺点:受约束,主要针对数据源的增删改查。
使用场景:一对多的数据共享。

6.Socket(套接字)
优点:功能强大,通过读写网络传输字节流,支持一对多的并发的实时通讯。
缺点:不支持直接的RPC(这里我也不是很明白,间接的怎么实现?)
使用场景:网络的数据交换

更多相关文章

  1. “罗永浩抖音首秀”销售数据的可视化大屏是怎么做出来的呢?
  2. Nginx系列教程(三)| 一文带你读懂Nginx的负载均衡
  3. 高级Redis应用进阶课 一站式Redis解决方案
  4. 不吹不黑!GitHub 上帮助人们学习编码的 12 个资源,错过血亏...
  5. 一款霸榜 GitHub 的开源 Linux 资源监视器!
  6. Android数据加密AES之Aes加密(一)
  7. 安卓 SQLite数据库操作实例
  8. android调用MySQL时遇到的一些问题
  9. Android复制粘贴详解

随机推荐

  1. 转载:Setting Up ADB/USB Drivers for And
  2. Android中的常量 DEFAULT_KEYS_SHORTCUT
  3. Android Push Notification
  4. android View全面详解2
  5. android开发新浪微博客户端 完整攻略
  6. android 列表显示事件处理
  7. android 使用工具签名应用
  8. android典型代码系列(八)------传递一个S
  9. GPS开发常用方法和Criteria确定android l
  10. 视频源