2016-02-13 72 views
0

我有一个尝试从服务器获取图像的android应用程序。将图像作为base64编码的bytearray或其路径传递

那么哪一个能够提供更好的性能?为什么? (在时间和空间上)

  • 传递字节阵列作为响应于Android应用

  • 在服务器传递的图像的唯一路径作为响应和检索图像从Android应用程序的网址。
+0

到底它是相同的,因为当你传递一个url时,它将被下载为一个字节数组 –

+0

只传递路径服务器中的图像 –

+0

为什么呢? –

回答

0

答案取决于图像的质量和尺寸......假设你已经创建了一个图像库应用程序,从服务器获取图像,并且你想要非常高质量的可下载图像....那么你应该使用图像路径

如果你只是用图像的缩略图,或者如果用户没有使用的图像,你可以使用base64编码图像的应用程序,因为它的加载时间非常快,重叠分离是由应用程序完成的,而不是通过网络完成的......即通过路径加载整个图像需要时间和大量数据,而base64编码图像就像商场字符串,这将被应用程序转换为图像,并将尽量减少加载时间..

+0

这两种方法都会产生高质量的图像吗? –

+0

编码的图像不会产生高质量的图像 –

+0

为什么? –

0

我会建议保存/检索图像从/到服务器的路径。

有时图像尺寸可能太大,无法将图像检索到您的android应用程序,但是如果您将图像路径存储到服务器,则不会遇到问题。

我总是将图像存储在一个文件夹中,只保存图像路径到服务器。它使数据库规模很小,查询数量少,查询结果的大小很小,这都意味着数据库执行速度更快。

0

将图像编码为base64字符串并将其包含在您的响应中是一种常见做法。

但是,如果您选择仅包含图像的URL,则可以从传输的大小/速度中获益,因为base64流的大小是原始二进制流的4/3(33%开销)。

此外,在这种情况下,您可以缓存图像。