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

Joh*_*n11 5 android ipc

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

Tal*_*nel 4

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

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

这种方法很好,因为数据的大小根本不重要,甚至可以达到数百兆。使用 AIDL 传输的对象的大小保持不变(Uri 字符串的大小..)

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

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