HttpUrlConnection与HttpResponseCache或Volley在android中实现更好的缓存实现

时间:2014-02-25 12:35:25

标签: android http-caching httpresponsecache

我正在为Android开发一个应用程序,其中有很多http请求到服务器来获取一些数据。我的回复包括很多图像以及JSON格式的文本。

我希望使用适当的缓存(如Google Play,Google Plus和其他应用程序用途)让我的应用程序更快地运行。

我已经了解了android Volley 库,并尝试并开发了一些样本进行测试,它提供了很好的服务,并按预期完美地缓存了我的图像。但最近在互联网上进行相同的研究时,我开始了解HttpResponseCache类,为Http请求响应安装缓存。

现在我对应该去哪里感到困惑,我已经尝试过Volley但没有尝试使用HttpResponseCache

我的问题是:

他们是否在内部做同样的事情?

如果没有哪个会更好。

您的专业建议或经验将节省我的很多时间。

1 个答案:

答案 0 :(得分:0)

我可以讲述我的经历。我的任务是一样的。我不得不下载很多图片和其他请求。我的第一次尝试基于使用HttpResponseCache的HttpUrlConnection。它工作,但下载速度不够快(12kb图像下载约1.5-2秒,这太长了)。所以我必须找到新的更快的解决方案 我知道凌空,但不知道其中的一些功能,尤其是下载的优先级。主要目的是优先考虑,所以我开始创建自己的解决方案。我尝试使用apache HttpClient而不是HttpUrlConnection,它真的很快,同样的图像从200到300毫秒下载。
我无法通过HttpUrlConnection实现更快的速度,但由于我不是专家,我认为存在小错误并且HttpUrlConnection可以更快地工作,遗憾的是这个问题对我来说仍然是关闭的。
如果查看Volley源代码,它会在API> = 9之后使用HttpUrlConnection类,而在API级别9之前使用HttpClient类。我没有使用凌空测量下载速度,所以我不能说它是快还是没有。 /> 所以,我得出的结论是,我的解决方案花了我至少3或4天,如果我知道凌空优先下载,也许我不必写它(如果它也很快)。 回答你的问题,是的,Volley做同样的事情,如果你不需要做一些特别的事情,你可以使用Volley,它会比编写自己的解决方案快得多。