在Android进程之间获取数据

时间:2012-09-03 20:08:47

标签: android process shared

在我正在设计的应用程序中,我有一个后端服务连接到通信总线,收集大量数据并与远程设备通信。我在另一个APK和进程中有一个前端(UI)。

我需要在这两个进程之间以非常高的速度(微秒)进行相当多的数据,通信事件和用户事件。这是一个例子:进程A可能会收到一个数据块,通过通信总线构成一个位图图像。由于此过程不在主UI线程中,因此无法使用Canvas和Bitmap类创建实际位图,我只能存储数据。进程B(UI线程)需要此数据来实际创建和显示位图图像。将进程B中的数据传递给进程A需要非常快速地进行 - 希望就像在同一进程中从一种方法调用到另一种方法的时间一样。

作为Android的新手,我正在努力解决这个问题。我看过AIDL看起来很有希望,但我还不知道。

有没有人对如何以相当高的速度在两个进程之间来回共享数据有任何想法?

1 个答案:

答案 0 :(得分:1)

你是对的,Android中进程之间进行通信的最好方法是AIDL。

我能想象的唯一可能的方法是提高性能 - 是在进程之间共享内存。但是我认为你需要为此做一个低级别的。 您可以查看以下文章:http://www.androidenea.com/2010/03/share-memory-using-ashmem-and-binder-in.html

但是,在大多数情况下,AIDL应该非常快。

祝你好运