【问题标题】:Android : How to get large data above 20mb from server to androidAndroid : 如何从服务器获取 20mb 以上的大数据到 android
【发布时间】:2017-04-07 11:10:23
【问题描述】:

在我的 android 应用程序中,当用户从新设备登录时,我想从服务器数据库中下载他的所有数据,这些数据的大小可能超过 20mb。这些数据包括转换为字符串的位图图像。当用户上传到目前为止,我所做的只是将此图像转换为位图,然后将其转换为字符串,然后将其保存到数据库,之后这些数据将通过同步保存到服务器数据库。如果同一用户从新设备登录我需要使用 web 服务从服务器获取所有这些数据。现在我正在使用 resttemplate 来加载这些数据,但问题是当有超过 20mb 的数据主要包含一些图像数据时,基于 web 服务可能需要更多时间图片大小。有没有更好的图片处理方式??

【问题讨论】:

    标签: android web-services bitmap


    【解决方案1】:

    您可以使用 aws s3。图像可以保存在 s3 存储桶中,它为我们提供了 URL。在加载应用程序中的所有细节而不是加载整个图像时,只需要发送 s3 URL。这些图像可以稍后下载,同时使用 Picasso 或 glide 等库将它们加载到图像视图中。

    【讨论】:

    • 看起来不错。所以我只需要将 url 保存在我的数据库中,每当我需要使用此图像时,只需使用 url 选择它。我说得对吗??
    • 你能展示一些例子吗..这也可以用于其他文件,如 pdf、文档等。
    • 是的。您可以在 s3 中上传所有类型的文件并使用 s3 url 检索它
    • bw s3和glide有什么区别??这个 s3 代表什么?我应该如何搜索?
    • Aws s3 是亚马逊提供的一项服务。 Glide 和 Picasso 是 android 库,您可以使用它们来下载这些图像,同时将它们加载到它们的图像视图中。
    【解决方案2】:

    不要使用位图图像(你的意思是什么),而是使用 jpg 的。不要将它们转换为 base64,因为数据量会增加 30%。不要将它们保存在服务器上的数据库中,而是将它们作为普通文件保存在服务器文件系统中。

    然后只需将 20 个文件的 2 个 url 提供给 Android 客户端,让 Android 客户端决定何时以及如何从 url 下载图像。

    或者,您可以让您的 base64 编码图像在数据库中。只需将 20 个 ID 或文件名(对于 20 个文件)发送到 Android 客户端。然后让 Android 客户端决定何时使用带参数 id 的 url 下载图像。

    【讨论】:

    • 如何在服务器中保存文件并返回该文件的url,文件上传应该在最短的时间内完成。
    • 如果你先告诉你有什么样的服务器,你只能问一个如何。
    • 你说的服务器是什么意思??
    • 您有自己的服务器和数据库。你已经使用了一个。现在告诉你那是什么类型的服务器。
    • 我有一个服务器,可以容纳多达 100GB 的数据。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-19
    • 1970-01-01
    • 1970-01-01
    • 2011-12-09
    • 2018-01-01
    相关资源
    最近更新 更多