在进程之间发送大量数据的最佳方法是什么?

时间:2014-09-30 14:34:10

标签: android ipc

我知道在Android中,我们无法使用aidl生成的存根在进程之间发送超过1 MB的数据。还有哪些其他选择?在Android中有类似的东西我可以看一下吗?

1 个答案:

答案 0 :(得分:4)

假设此对象无论如何都存储为内部应用程序/外部存储或SQLite表中的文件,最好的方法是不“发送”它们。

相反 - 在你的应用中实现一个ContentProvider,它将公开对它们的访问(可能通过Uri)。应该使用此数据的应用程序将查询您的ContentProvider,并将返回指向数据路径的Uri。然后通过OutputSteam可以获取数据。

这种方法很好,因为数据的大小根本不重要,并且可能是数百个megas的事件。使用AIDL传输的对象大小保持不变(Uri String的大小..)

如果这1MB数据没有存储在上述某个(SQLite或文件系统)中 - 那么您应用中的某些内容是非常错误的: - >因为你不应该引用那个大小的对象(除非它是位图对象)

更多信息 - http://developer.android.com/reference/android/content/ContentProvider.html