0
点赞
收藏
分享

微信扫一扫

Android IPC方式总结


前言

经过半个月的学习,目前我对Android IPC机制有了更全面的理解。结合《Android开发艺术探索》,在这里做个总结
​​​IPC方式1:Messenger实战​​​​IPC方式2:AIDL实战​​​​IPC方式3:ContentProvider实战​​​​AIDL配合Binder连接池实战​​​​Binder原理学习​​

1.IPC方式有哪些

①Bundle
②AIDL
③Messenger
④ContentProvider
⑤文件共享
⑥socket

2.使用场景

①Bundle

四大组件间的进程间通信

②AIDL

一对多通信,并发通信,有RPC需求

③Messenger

一对多通信,服务端不存在并发执行的情景(即多进程单线程),无RPC需求或者无需要返回结果的RPC需求

④ContentProvider

一对多通信,并发通信,有RPC需求

⑤文件共享

无并发,适用于交换简单的数据实时性不高的情景

⑥socket

网络数据交换

3.各个的优点

①Bundle

简单易用

②AIDL

支持一对多并发通信,支持实时通信

③Messenger

支持一对多串行通信,使用起来比AIDL简单

④ContentProvider

受约束的AIDL,支持一对多并发通信,提供了统一的uri与统一的接口,方便通信

⑤文件共享

简单易用

⑥socket

支持一对多并发通信,支持实时通信

4.各个的缺点

①Bundle

只能传输Bundle支持的数据类型

②AIDL

使用复杂,需处理线程同步

③Messenger

不支持并发,不支持RPC,只能传输Bundle支持的类型

④ContentProvider

一般只提供CRUD操作

⑤文件共享

不支持并发,无法实时通信

⑥socket

使用复杂

5.一表总结

名称

优点

缺点

适用场景

Bundle

简单易用

只能传输Bundle支持的数据类型

四大组件间的进程间通信

AIDL

支持一对多并发通信,支持实时通信

使用复杂,需处理线程同步

一对多通信,并发通信,有RPC需求

Messenger

支持一对多串行通信,使用起来比AIDL简单

不支持并发,不支持RPC,只能传输Bundle支持的类型

一对多通信,服务端不存在并发执行的情景(即多进程单线程),无RPC需求或者无需要返回结果的RPC需求

ContentProvider

受约束的AIDL,支持一对多并发通信,提供了统一的uri与统一的接口,方便通信

一般只提供CRUD操作

一对多通信,并发通信,有RPC需求

文件共享

简单易用

不支持并发,无法实时通信

无并发,适用于交换简单的数据实时性不高的情景

socket

支持一对多并发通信,支持实时通信

使用复杂

网络数据交换


举报

相关推荐

0 条评论