Android远程方法(AIDL)与意图(Intents)-性能和电池使用情况

6

我的团队正在开发一个Android项目,该项目由几个Android应用程序组成,这些应用程序在同一手机上交换数据。我们的想法是有几个应用程序收集一些数据并将这些数据发送到主应用程序。这里的主要挑战是尽可能地降低CPU负载和电池使用量。

据我所知,有两种方法可以实现进程间通信:

  1. Intents和activities - 一个activity捕获另一个activity的意图
  2. 远程方法(通过AIDL)

我想知道在以下情况下哪种方法更有效:

  1. 非常频繁的消息/方法调用,发送/流量很小的数据(例如,只传递一堆原语)
  2. 不太频繁的消息/方法调用,大量的流量块(例如,收集数据并定期发送几KB / MB的数据)
  3. 非常频繁的消息/方法调用,交换大数据块

我会感激任何帮助,无论是比较还是参考/链接到基准测试。


2
在进程间通信的选项列表中,您还应该添加ContentProvider。这也是在多个应用程序之间共享集中数据(所有读取和所有可能写入)的有效方式。 - Zelimir
3个回答

2

我认为对于1),最好使用远程服务,而对于2)和3),最好将其写入文件或数据库。 Intents更适用于偶尔的进程间通信和启动应用程序和服务。


谢谢。那么Zelimir提到的ContentProvider呢? - eold
应用程序是否在同一个包中?如果是,您可以直接使用数据库。如果不是,则ContentProvider是正确的选择 :) - ns476
使用那个数据库作为临时数据存储,例如在方法之间传递一些数据,会有多大的开销? - eold

1

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接