0

私が設計しているアプリでは、大量のデータを収集し、リモート デバイスと通信する通信バスに接続されたバック エンド サービスがあります。別の APK とプロセスにフロント エンド (UI) があります。

これら 2 つのプロセス間では、かなりの量のデータ、通信イベント、およびユーザー イベントが非常に高速 (マイクロ秒) で流れる必要があります。以下に例を示します。プロセス A は、通信バスを介してビットマップ イメージを構成するデータ ブロックを受信する場合があります。このプロセスはメインの UI スレッドではないため、Canvas クラスと Bitmap クラスを使用して実際のビットマップを作成することはできません。データを保存することしかできません。プロセス B (UI スレッド) は、実際にビットマップ イメージを作成して表示するために、このデータを必要とします。プロセス B からプロセス A へのデータの受け渡しは、非常に高速に行われる必要があります。できれば、あるメソッドから別のメソッドへの呼び出しが同じプロセスで発生するのと同じくらいの時間です。

Android の初心者として、私はこの概念に苦労しています。AIDL を調べたところ有望に見えますが、まだわかりません。

2 つのプロセス間でかなり高速にデータをやり取りする方法について、何か考えがある人はいますか?

4

1 に答える 1

1

そうです、Android のプロセス間で通信するのに最適なのは AIDL です。

パフォーマンスをさらに向上させるために想像できる唯一の方法は、プロセス間でメモリを共有することです。ただし、これには低レベルに行く必要があると思います。たとえば、この記事を確認できます: http://www.androidenea.com/2010/03/share-memory-using-ashmem-and-binder-in.html

ただし、ほとんどの場合、AIDL は非常に高速です。

幸運を

于 2012-09-03T20:13:56.990 に答える