【发布时间】:2014-12-14 03:10:07
【问题描述】:
我正在开发一个应用程序,这需要 -
- 从本地通讯录中提取联系方式和图片。
- 每隔一段时间将此联系人数据(全部)同步到服务器。
- 在需要时从服务器中提取联系人数据(以及图像)。
我基本上知道如何单独实现它们。例如,我已经设法拉取本地联系人,但我还没有达到 2 和 3。我对他们没有几个问题。
- 我在哪里保存图像(本地和网络)?我需要将它们保存在任何特定文件夹中吗?如果是,那么推荐的方法是什么?
- 我在另一个项目中使用过 volley 库,我希望在这里再次使用它。 AFAIK,凌空在内存中缓存网络图像。但我相信在我的应用中,可能会有用户拥有超过 2000 条联系数据。我的直觉是,并非所有图像都会永远保留在缓存中,所以如果我希望我的应用程序离线工作,我需要将图像存储在本地。我对在哪里存储图像以及如何实现这一点感到困惑。请注意,此应用会被频繁访问。
- 通过网络将图像数据发送到服务器的推荐方式是什么。
这些问题可能看起来很宽泛,但考虑到单个应用程序,我觉得它们是紧密耦合的。我期待专家对实现这些功能的推荐方法发表意见。
谢谢!
【问题讨论】:
-
作为旁注,出于个人经验考虑您是否真的需要缓存所有图像。一方面,您总是可以在运行时延迟加载图像(因此将图像缓存在 RAM 中,而无需将图像缓存在系统上的文件中)。另一方面,如果你想在手机本身缓存图片,尽量压缩大小,同时不丢失明显的细节[这当然也取决于屏幕大小]
-
现在我重新阅读了问题+评论,以上内容仅适用于您几乎只在线的情况。那么,旁注是旁注吗?您可以同时做一些 - 通常,如果可能的话,延迟加载并缓存/保存一定数量的联系人的图像[最有可能用户会看到 85% 的时间,或者那些可能会在离线时看到的图像]
-
我正在使用延迟加载来加载其他数据。现在我已经学会了拉图像,希望能尽快整合它。我对有效实现图像的方法感到困惑,因为我相信大约 2000 次图像接触是一件很难处理的事情。
标签: android image android-volley