Android - 将大量数据传递给在不同进程上运行的服务

时间:2013-07-12 14:05:35

标签: android aidl

有没有办法将大量数据传递到与主要活动不同的进程上运行的Android服务? 要传递的数据是大约5Mb的字节数组。 作为说明,我无法将数据保存到文件进行传输,需要纯粹通过内存或任何其他不会持久存储到文件,数据库等的方式进行传输。

我已尝试通过AIDL,但似乎在AIDL下的Android中,可分配的数据仅限于1Mb。此外,切片数据并通过块传输也不是一种选择。应该是1个单一交易。 我也尝试过Intents,但同样限制了500Kb到1Mb。

所以我的想法已经不多了。

1 个答案:

答案 0 :(得分:0)

共享内存ashmem怎么样? http://www.androidenea.com/2010/03/share-memory-using-ashmem-and-binder-in.html

内存文件是一个ashmem包装器 http://developer.android.com/reference/android/os/MemoryFile.html

或者您可以尝试在服务中打开套接字或ServerSocket并从活动中连接它

http://developer.android.com/reference/java/net/ServerSocket.html