一个学习 Android 的 iOS 开发人员提出的两部分问题,他正在开发一个 Android 项目,该项目将提出各种请求,从 JSON 到图像再到音频和视频的流式下载:
在 iOS 上,我广泛使用了AFNetworking项目。是否有适用于 Android 的等效库?
我已经阅读了 Square 的OkHTTP和Retrofit以及Volley,但还没有使用它们开发的经验。我希望有人可以为每个人提供一些最佳用例的具体示例。根据我的阅读,OkHTTP 似乎是三者中最健壮的,并且可以处理该项目的要求(如上所述)。
我希望有人可以为每个人提供一些最佳用例的具体示例。
如果您正在与 Web 服务通信,请使用 Retrofit。如果您正在下载图像,请使用对等库 Picasso。如果您需要执行 Retrofit/Picasso 之外的 HTTP 操作,请使用 OkHTTP。
Volley 与 Retrofit + Picasso 大致竞争。从好的方面来说,它是一个图书馆。不利的一面是,它是 一个未记录的、 不受支持的“将代码扔到墙上并在其上进行 I|O 演示”的库。
编辑 - 谷歌现在正式支持 Volley。请参考谷歌开发者指南
从我读过的内容来看,OkHTTP 似乎是 3 个中最健壮的
如果可用,Retrofit 会自动使用 OkHTTP。Jake Wharton有一个Gist将 Volley 连接到 OkHTTP。
并且可以处理这个项目的要求(如上所述)。
根据“流式传输”的传统定义,您可能不会将它们用于“音频和视频的流式下载”。相反,Android 的媒体框架将为您处理这些 HTTP 请求。
话虽如此,如果您要尝试自己进行基于 HTTP 的流式传输,OkHTTP 应该可以处理这种情况;我不记得 Volley 会如何处理这种情况。Retrofit 和 Picasso 都不是为此而设计的。