【问题标题】:Google Volley vs Android-Async-HttpGoogle Volley vs Android-Async-Http
【发布时间】:2014-10-10 09:25:54
【问题描述】:

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

我想了解一些人使用这两个库的经验。就个人而言,我一直很高兴地使用http://loopj.com/android-async-http/ 库。但最近有人建议我使用 Volley 框架。

我将从其中获得哪些好处?
从我目前的阅读来看,Volley 在一个库中集成了许多不错的功能,例如图像加载、请求缓存、请求取消。

我目前的用例/规格:

从我的 android 应用程序中使用网络服务。

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

来自一些关于 SE 的阅读:

“Volley 都很好,但不利的一面是,它是一个没有文档、不受支持的“将代码扔到墙上并在其上进行 I|O 演示”的库。”

所以我认为它的清晰 Volley 可能会在功能上得到认可,但它的文档和维护情况如何?如果我决定使用它,4 年后还会有支持吗?

【问题讨论】:

  • 最大的不同是由 Android 的所有者 Google 创建的 Volley!
  • 你可以通过凌空使用OkHttp。只需将其 HttpStack 配置为使用 OkHttp! volley也可以下载图片,看看googleIO2013介绍volley的视频看看它的特点再决定!!因为我没有使用 loopj 也不知道你的确切要求我不回答你的问题
  • 你可能找不到 Volley 的任何完整文档,但是 Google 最近在 DAC 中包含了一个很好的培训部分:developer.android.com/training/volley/index.html 它应该对基本用法很有用。而且,这可能表明 Google 也在处理它的文档!
  • 而且,这个讨论看起来很相关:stackoverflow.com/questions/16902716/…

标签: android android-volley androidhttpclient android-async-http


【解决方案1】:

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 个捆绑在一起使用。这就是灵活性和强大的功能。

进一步阅读此take a look at this answer.

【讨论】:

    【解决方案2】:

    我们目前在我们的应用程序中结合使用 Volley 和 GSON。没有什么是我们做不到的,我们使用了几乎所有你能想象到的 HTTP 请求类型。目前包括:

    • 带有 JSON 响应的普通 HTTP 请求
    • 带有表单编码数据以及原始字节数组的 POST 请求
    • 包含图像和文件等大对象的多部分 HTTP 请求
    • 自定义请求标头
    • 国际化请求

    我们还没有遇到无法克服的障碍,尽管我们必须编写大量代码来支持所有这些功能并构建我们想要的框架,但任何 HTTP 库都应该这样做。

    Volley 还带有一个处理图像缓存的 ImageLoader,以及许多其他漂亮的功能。

    【讨论】:

    • 您不关心支持问题吗?谷歌似乎发布了凌空,并没有真正维护或投入太多精力在这个项目上?
    • 我不确定我是否完全同意这种说法。如果您在此处查看 Volley 存储库:android.googlesource.com/platform/frameworks/volley 您会看到 Google 仍在继续进行更新,就在 8 天前。此外,他们每次更新 Android 操作系统时都会发布一个新标签。
    • 现在对我来说最好的 Volley 组合是 OkHttp + Volley + Gson。看看这个 -> goo.gl/nl2DfN
    【解决方案3】:

    Android Volley 和 AsyncTask 的区别

    试试这个链接http://www.truiton.com/2015/02/android-volley-vs-asynctask-better-approach/

    使用 AsyncTask 是一个不错的方法,但将 Android Volley 视为它的 2.0 版本。它比 AsyncTask 有很多改进,因为 volley 是为网络访问而设计的。与 AsyncTask 相比,Android Volley 的一个主要优势是您可以同时执行多个请求,而无需线程管理的开销。此外,我相信重试机制是 volley 的一大特色,它比 AsynTask 更具优势。 volley 相对于 AsyncTask 的另一个优势是它为您提供了多种请求类型,通过它们可以轻松地发出复杂的请求。另一方面,在使用 AsyncTasks 时,必须手动创建这种类型的请求。

    虽然最佳方法因应用程序而异。就像如果你有更少的请求,你可以使用 AsyncTask。至于 volley,必须导入一个库项目,这会增加您的项目大小。因此在 volley 和 AsyncTask 之间做出明智的选择。希望这个 Android Volley vs AsyncTask 总结能帮助你选择。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-07
      • 2015-07-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多