Android - 进程间通信

wangyuzhen

进程间通信方式

名称优点缺点适用场景
Intent简单易用只能传输 Bundle 支持的数据类型四大组件间的进程间通信
文件共享简单易用不适合高并发场景,并且无法做到进程间的即时通信无并发访问,交换简单的数据,实时性不高的场景
AIDL功能强大,支持一对多并发通信,支持实时通信使用稍复杂,需要处理好线程同步一对多通信且有 RPC 需求
Messenger功能一般,支持一对多串行通信,支持实时通信不能很好处理高并发情形,不支持 RPC,数据通过 Message 进行传输,因此只能传输 Bundler 支持的数据类型低并发的一对多即时通信,无 PRC 需求,或者无需要返回结果的 RPC 需求
ContentProvider在数据源访问方面功能强大,支持一对多并发数据共享,可通过 ContentProvider 和 ContentResolver 的 Call 方法扩展其它操作可能理解为受约束的 AIDL,主要提供数据源的 CRUD 操作一对多的进程间的数据共享
Socket功能强大,可以通过网络传输字节流,支持一对多并发实时通信实现细节略繁琐,不支持直接的 RPC网络数据交换

参考

  • 《Android 开发艺术探索》

文档信息

  • 本文作者:王玉镇wangyuzhen
  • 本文链接:https://wangyuzhen666.github.io//wiki/android-ipc/
  • 版权声明:Creative Commons 4.0 传播此文章时,您需要遵守知识共享协议。 署名(BY)&非商业性(NC)&相同方式共享(SA)------------------------------- When disseminating this article, you need to adhere to a Creative Commons license. Attribution (BY) & Non-Commercial (NC) & Shareby Manner (SA) .(Creative Commons 4.0

Search

    Table of Contents