Android Web服务和网络库的比较:OKHTTP、改型和截取
一位学习Android的iOS开发者提出了两个部分的问题,他正在从事一个Android项目,该项目将提出从JSON到图像再到音频和视频流下载的各种请求:Android Web服务和网络库的比较:OKHTTP、改型和截取,android,networking,retrofit,android-networking,android-webservice,Android,Networking,Retrofit,Android Networking,Android Webservice,一位学习Android的iOS开发者提出了两个部分的问题,他正在从事一个Android项目,该项目将提出从JSON到图像再到音频和视频流下载的各种请求: 在iOS上,我广泛使用了该项目。Android是否有一个等效的库 我已经读了很多关于Square的书,但还没有和他们一起发展的经验。我希望有人能提供一些具体的最佳用例的例子。从我所读到的内容来看,OkHTTP似乎是三者中最健壮的,并且可以处理这个项目的需求(如上所述) 我希望有人能为每个人提供一些最佳用例的具体例子 如果您正在与Web服务通信,
也就是说,如果您要尝试自己进行基于HTTP的流式传输,OkHTTP应该处理该场景;我不记得凌空抽射能很好地处理这种情况。改装和毕加索都不是为此而设计的。从截击角度来看,以下是满足您需求的一些优势: 一方面,Volley完全专注于处理单个的小型HTTP请求。所以,如果您的HTTP请求处理有一些怪癖,那么Volley可能会为您提供一个钩子。另一方面,如果您在图像处理方面有一个怪癖,那么唯一真正的钩子就是ImageCache。“这不是什么,但也不是很多!”。但它还有其他更多的优点,比如一旦定义了请求,就可以在片段或活动中使用它们,这与并行异步任务不同 截击的利弊: 那么截击有什么好处呢
- 网络部分不仅仅是图像。凌空抽射的目的是 后端不可分割的一部分。对于基于 简单的休息服务,这可能是一个巨大的胜利
- NetworkImageView在请求清理方面比 毕加索,在GC使用模式上更为保守。 NetworkImageView完全依赖强内存引用,并且 在对请求进行新请求时,立即清除所有请求数据 ImageView,或一旦该ImageView移离屏幕
- 表演。这篇文章不会对这一说法进行评估,但他们明确表示 在内存使用模式方面采取了一些谨慎措施。 Volley还努力批量回调主线程以 减少上下文切换
- 截击显然也有前途。如果你是 感兴趣
- 如果你处理的是高分辨率的压缩图像,凌空就是 这里唯一有效的解决方案
- Volley可以与Okhttp一起使用(新版本的Okhttp支持NIO以获得更好的性能)
- 截击在活动生命周期中起到了很好的作用
由于截击是新的,很少有东西不被支持,但它是固定的
- 与Volley相比,改型的RESTAPI代码很简单,提供了 优秀的API文档和社区支持! 这很容易添加到项目中
- 我们可以将它与任何序列化库一起使用,并进行错误处理
- OkHttp 2.0的1.6版改型现在依赖于来支持java.io和java.nio,这使得使用ByteString和Buffer访问、存储和处理数据变得更加容易,从而节省CPU和内存。(仅供参考:这让我想起了支持NIO的库!) 我们可以使用rxObservables来组合和链接REST调用,以避免丑陋的回调链(避免回调地狱!!)李>
- 内存相关的错误处理功能不好(在旧版本的改型/OkHttp中),不确定Okio with JavaNIO支持是否对其进行了改进
- 如果我们使用这个,最小的线程协助可能会导致回调
以不恰当的方式。
09-23 20:12:32.830 16002-16002/com.urbanpro.seeker E/RETROFIT﹕ RestAdapter Init 09-23 20:12:32.833 16002-16002/com.urbanpro.seeker E/RETROFIT﹕ calling the method 09-23 20:12:32.837 16002-16002/com.urbanpro.seeker E/ROBOSPICE﹕ initialzig spice manager 09-23 20:12:32.860 16002-16002/com.urbanpro.seeker E/ROBOSPICE﹕ Executing the method 09-23 20:12:33.537 16002-16002/com.urbanpro.seeker E/ROBOSPICE﹕ on SUcceess 09-23 20:12:33.553 16002-16002/com.urbanpro.seeker E/ROBOSPICE﹕ gettting the all contents 09-23 20:12:33.601 16002-21819/com.urbanpro.seeker E/RETROFIT﹕ deseriazation starts 09-23 20:12:33.603 16002-21819/com.urbanpro.seeker E/RETROFIT﹕ deseriazation ends