【发布时间】:2015-09-08 19:56:27
【问题描述】:
我正在构建一个 android 应用程序,它需要将图像显示为从服务器检索的翻转视图。我考虑了两种方法
- 从服务器 URL 检索图像,然后显示 OR
- 将图像存储在服务器 (MySQL) 的 db 中,然后从 android 应用程序上的 sq-lite 检索它
我的问题是,考虑到所有方面(性能等),哪种方法会更好?
也欢迎任何其他更好的方法:)
【问题讨论】:
我正在构建一个 android 应用程序,它需要将图像显示为从服务器检索的翻转视图。我考虑了两种方法
我的问题是,考虑到所有方面(性能等),哪种方法会更好?
也欢迎任何其他更好的方法:)
【问题讨论】:
这取决于您的应用程序和您要使用图像显示的产品,如果它们不经常更新,那么最好使用缓存来获得更快的用户体验,但如果数据是监管更新的,并且以前的数据不断被过滤,那么始终使用网络加载。
另一种方法,您可以在数据库中存储最新的 10-20 个条目,一旦您打开应用程序,他就可以看到一些数据并下载新数据,这种方法可以让用户保持参与度,不要仅仅因为他们就离开您的应用程序每次他们看到加载。
对于图像缓存目的,有各种优秀的库可用,它们是用于多个图像下载和缓存目的的稳定解决方案,例如 UniversalImageLoader、picasso、Volley
【讨论】:
您将图像存储在本地,然后从本地存储加载到您的应用程序(这发生在后台线程中)
您可以在需要时通过在后台获取图像来更新本地存储,然后从本地存储触发加载(这也发生在后台线程中)
这样,您会因为互联网连接缓慢或丢失而获得 ANR(应用程序无响应),并且您将能够在完全没有连接的情况下显示图像。
【讨论】:
一个好的方法是按需将图像存储在本地,并将其保存在缓存中,如果将来图像发生变化,您可以使缓存失效并下载新图像。
我在一个项目中使用了一个库,它可以帮助我在后台下载图像,如果之前存储或使缓存无效,您还可以自动从缓存加载图像。图书馆是android-query,这里有一个例子说明你可以如何use它。
【讨论】: