谷歌Volley与Android-Async-Http的比较

13

我正在研究这两个Android Http网络库。

我希望听取一些人使用这两个库的经验。个人而言,我一直很愉快地使用http://loopj.com/android-async-http/库。但最近有人建议我使用Volley框架。

使用其中一个库会带来什么好处?
从我的阅读中,Volley结合了许多不错的功能,例如图像加载、请求缓存、请求取消等等。

我的当前用例/规格:

从我的Android应用程序中使用Web服务。

  • 从Web服务接收JSON对象
  • 易于与GUI集成
  • 稳定性和可靠性优于原始性能
  • 长期维护和支持库。
  • 易用性/易实现性

从SE上的一些阅读中:

"虽然Volley很好,但它是一个未记录、不支持的“把代码扔到墙上,并进行I|O演示”的库。"

所以我认为很明显,Volley可能会因其特性获得支持,但它的文档和维护情况如何?如果我决定使用它,4年后它仍会得到支持吗?


最大的不同是 Volley 是由 Android 的所有者 Google 创建的! - Arash
1
你可以通过配置HttpStack来使用OkHttp,从而在Volley中使用它。Volley还可以下载图片,可以观看GoogleIO2013视频以了解其功能,然后再决定是否使用。由于我没有使用过Loopj,也不知道您的确切要求,因此无法回答您的问题。 - mmlooloo
你可能找不到 Volley 的完整文档,但是 Google 最近在 DAC 中加入了一个很好的培训部分:http://developer.android.com/training/volley/index.html 它对于基本用法应该是有用的。而且,这可能表明 Google 正在努力编写它的文档! - Hungry Coder
1
而且,这个讨论看起来很相关:https://dev59.com/JWQn5IYBdhLWcg3wW2D3 - Hungry Coder
3个回答

6

Volley和Android Async Http是不同的东西。

  • Android Async Http:是一个强大的Http客户端。提供了一些功能,如REST帮助程序和与其他库的JSON解析集成。

  • Volley:是一个REST帮助程序/库,可帮助您处理异步请求和图像加载。Volley不是一个http客户端。如果您没有提供一个,Volley将使用SDK http客户端(apache或httpclient取决于API级别),但是Volley的常见客户端是OkHttp(https://goo.gl/nl2DfN)。您也可以轻松地将Volley与Gson集成。

从我的角度来看,您给单个库的责任越多,您拥有的自定义功能就越少,添加的不必要代码就越多。这就是为什么像Android Async Http或ION这样的库现在失去了控制,而其他选项,如Square解决方案(Okio + OkHttp + Retrofit + Moshi + Picasso - 这是五个库)正在获得控制。因此,这里有5个库,可以作为独立的单体使用,也可以作为2、3或4个组合在一起。这就是灵活性和强大性。

如果想进一步了解此问题,请查看这个答案。


1

Android Volley和AsyncTask的区别

请查看链接http://www.truiton.com/2015/02/android-volley-vs-asynctask-better-approach/

使用AsyncTask是一个不错的方法,但考虑到Android Volley就像它的2.0版本。相比AsyncTask,Volley在网络访问方面有很多改进。 Android Volley相对于AsyncTask的主要优势是可以同时进行多个请求而无需线程管理的开销。此外,我认为重试机制是Volley的一个伟大特性,这使其比AsynTask更具优势。 Volley相对于AsyncTask的另一个优点是它提供了多种请求类型,通过这些类型可以轻松地完成复杂的请求。另一方面,在使用AsyncTasks时,需要手动创建此类型的请求。

尽管最佳方法因应用程序而异。例如,如果您要进行较少的请求,则可以使用AsyncTask。至于Volley,必须导入一个库项目,这会增加项目的大小。因此,请明智地选择Volley和AsyncTask。希望本文对您选择Android Volley vs AsyncTask有所帮助。


1
我们目前在应用程序中使用Volley和GSON的组合。我们几乎可以使用所有类型的HTTP请求,还没有遇到过无法克服的问题。这些包括:
- 正常的HTTP请求并带有JSON响应 - 带有表单编码数据以及原始字节数组的POST请求 - 多部分HTTP请求,并携带大型对象如图像和文件 - 自定义请求头 - 国际化请求
虽然我们不得不编写相当数量的代码来支持所有这些特性和构建所需的框架,但这也是任何HTTP库所期望的。此外,Volley配备了一个ImageLoader,可处理图像缓存以及一堆其他方便的功能。

支持问题不让你担心吗?谷歌似乎发布了Volley,但并没有真正维护或投入太多精力到这个项目中? - Zapnologica
1
我不确定我完全同意那个说法。如果你看一下这里的Volley存储库:https://android.googlesource.com/platform/frameworks/volley,你会发现Google正在继续更新,最近更新时间为8天前。此外,每次更新Android操作系统时,他们总是发布一个新的标签。 - aeskreis
目前我认为与Volley最佳搭配的是OkHttp + Volley + Gson。请看这个链接-> https://goo.gl/nl2DfN - Sotti

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接