【发布时间】:2011-06-28 06:50:45
【问题描述】:
我的团队正在开发一个 Android 项目,该项目包含多个交换数据的 Android 应用程序(在同一部手机上)。这个想法是有几个应用程序正在收集一些数据并将这些数据发送到主应用程序。这里的主要挑战是在 CPU 负载和电池使用方面尽可能便宜地进行交换。
据我所知,实现进程间通信有两种方式:
- 意图和活动 - 一项活动捕捉另一项活动的意图
- 远程方法(通过 AIDL)
我想知道在以下场景中哪种更有效:
- 非常频繁的消息/方法调用,发送的数据/流量很少(例如,只传递一堆原语)
- 具有大流量块的消息/方法调用频率较低(例如,收集数据并定期发送几 KB/MB 的数据)
- 交换大量数据块的非常频繁的消息/方法调用
我将不胜感激任何帮助,无论是在比较方面还是在基准的参考/链接方面。
【问题讨论】:
-
在您的进程间通信选项列表中,您还应该添加 ContentProvider。这也是在多个应用程序之间共享集中式数据(所有读取和所有可能写入)的有效方式。
标签: android performance android-intent interprocess aidl