美文网首页
有哪些IPC实现的通信方式

有哪些IPC实现的通信方式

作者: next_discover | 来源:发表于2018-07-21 13:01 被阅读19次

    1.bundle :

    简单易用 但是只能传输Bundle支持的对象 常用于四大组件间进程间通信

    2.文件共享:

    简单易用 但不适合在高并发的情况下 并且读取文件需要时间 不能即时通信 常用于并发程度不高 并且实时性要求不高的情况

    3.AIDL :

    功能强大 支持一对多并发通信 支持即时通信 但是使用起来比其他的复杂 需要处理好多线程的同步问题 常用于一对多通信 且有RPC 需求的场合(服务端和客户端通信)

    4.Messenger :

    功能一般 支持一对多串行通信 支持实时通信 但是不能很好处理高并发情况 只能传输Bundle支持的类型 常用于低并发的无RPC需求一对多的场合

    5.ContentProvider :

    在数据源访问方面功能强大 支持一对多并发操作 可扩展call方法 可以理解为约束版的AIDL 提供CRUD操作和自定义函数 常用于一对多的数据共享场合

    6.Socket :

    功能强大 可以通过网络传输字节流 支持一对多并发操作 但是实现起来比较麻烦 不支持直接的RPC 常用于网络数据交换

    总结起来

    当仅仅是跨进程的四大组件间的传递数据时 使用Bundle就可以 简单方便
    当要共享一个应用程序的内部数据的时候 使用ContentProvider实现比较方便
    当并发程度不高 也就是偶尔访问一次那种 进程间通信 用Messenger就可以
    当设计网络数据的共享时 使用socket
    当需求比较复杂 高并发 并且还要求实时通信 而且有RPC需求时 就得使用AIDL了
    文件共享的方法用于一些缓存共享 之类的功能

    最后欢迎加入Kotlin大神交流群:

    Paste_Image.png

    欢迎关注

    android频道

    相关文章

      网友评论

          本文标题:有哪些IPC实现的通信方式

          本文链接:https://www.haomeiwen.com/subject/jtrhmftx.html