在Android进程之间获取数据



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

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

作为安卓系统的新手,我正在为这个概念而挣扎。我看过AIDL,它看起来很有希望,但我还不知道。

有人知道如何在两个进程之间以合理的高速来回共享数据吗?

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

我能想象到的提高性能的唯一可能方法是在进程之间共享内存。然而,我认为你需要对此保持低调。例如,您可以查看本文:http://www.androidenea.com/2010/03/share-memory-using-ashmem-and-binder-in.html

然而,在大多数情况下,AIDL应该相当快。

祝好运

最新更新