一位学习Android的iOS开发者提出了两个部分的问题,他正在从事一个Android项目,该项目将提出从JSON到图像再到音频和视频流下载的各种请求:

  1. 在iOS上,我广泛使用了AFNetworking项目.安卓是否有类似的库?

  2. 我已经阅读了关于Square的OkHTTPRetrofit,以及Volley,但还没有与它们一起开发的经验.我希望有人能为每种应用提供一些最佳用例的具体示例.据我所知,OkHTTP似乎是三个中最健壮的,可以处理这个项目的需求(上面提到的).

推荐答案

我希望有人能 for each 人提供一些最佳用例的具体例子.

如果您正在与Web服务通信,请使用Retrofit.如果您正在下载图像,请使用对等图库毕加索.如果您需要执行位于Retrofit/Picasso之外的HTTP操作,请使用OkHTTP.

截击与改装+毕加索大致竞争.好的一面是,它是一个图书馆.从负面来看,它是一个未记录的库,一个不受支持的库,"把代码扔到墙上,在上面做I | O演示".

编辑-截击现在由谷歌正式支持.请参阅第Google Developer Guide

据我所知,OkHTTP似乎是这三种协议中最强大的一种

如果可用,改型会自动使用OkHTTP.有一个Gist from Jake Wharton连接截击和OkHTTP.

并能满足本项目(如上所述)的要求.

按照传统的"流媒体"定义,您可能不会将它们用于"音频和视频的流媒体下载".相反,Android的媒体框架将为您处理这些HTTP请求.

也就是说,如果您打算try 执行您自己的基于HTTP的流,那么OkHTTP应该处理这种情况;我不记得volley处理这种情况会有多好.无论是Retrofit还是毕加索,都不是为此而设计的.

Android相关问答推荐

Android:MethodHandle. invoke和MethodHandle. invokeExact仅从Android O( - min—api 26)开始支持

如何go 除回调流中不可用的状态?

即使安装了Chrome和YouTube,Android对action_view a YouTube URL的意图也是空的

译码BLE血糖仪特征值

有人能帮我在应用程序上使用模拟位置时避免被发现吗?我已经反编译并粘贴了一个代码,S小文件

在Jetpack Compose中从LazyColumn中删除项目时发生IndexOutOf边界异常

从惰性列中删除项目时Jetpack Compose崩溃

jetpackcompose-如何对解析后的复杂对象进行状态提升?

为什么可以';我不能直接在RecyclerView.ViewHolder中访问视图ID吗?

警告:应用必须面向 Android 13(API 级别 33)或更高版本.确实如此

如何在jetpack compose中使可组合的屏幕zoom 到不同的手机(屏幕)尺寸?

可从 Play store 下载链接访问未发布的应用

在一个函数中组合相同的流 struct

如何在 Jetpack Compose 中的特定位置绘制图像

如何以编程方式通过 whatsapp android 共享图像和文本

如何像 XML 一样在 Compose Android Studio 中折叠/展开小部件代码区域/区域

找不到(包名称).在以下位置搜索:

如何限制键盘输入键不允许在下一行输入(Android Jetpack Compose 中的 TextField)

未解决的参考:getIntentSender / try 在 Jetpack Compose 中获取电话号码时

Google Play 服务登录在 Unity Android 上无法正常运行