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

Posted

技术标签:

【中文标题】在进程之间发送大量数据的最佳方法是啥?【英文标题】:what is the best approach to sending large amount of data between processes?在进程之间发送大量数据的最佳方法是什么? 【发布时间】:2014-09-30 14:34:10 【问题描述】:

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

【问题讨论】:

【参考方案1】:

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

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

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

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

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

【讨论】:

以上是关于在进程之间发送大量数据的最佳方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

在 ASP.NET 中发送大量电子邮件的最佳方式是啥?

在数据库中存储大量标记的最佳方法是啥?

构建具有大量数据通信的系统的最佳方法是啥?

将大量数据从 DataFlow 加载到外部 postgres 数据库的最佳方法是啥?

使用 Datatables 在 Laravel 中处理大量行的最佳方法是啥?

在 Python 中通过套接字发送大量数据的正确方法是啥?