为什么我应该使用OkHttp而不是android httpClient和AsyncTask

RCB*_*RCB 20 android android-networking androidhttpclient retrofit okhttp

在SpeakerDeck(https://speakerdeck.com/pareshmayani/lazy-android-developers-be-productive)的Paresh Mayani演讲中,他说最好使用OkHttpRetrofit代替AsyncTask使用DefaultHttpClient.

我的问题是为什么?
为什么他们更快?
那些也是基于默认android类的库吗?
OkHttp和Retrofit有什么区别?

谢谢!

小智 22

与往常一样,工程设计是为了平衡权衡,以便为您的需求构建最佳解决方案.

使用库而不是平台就是一个很好的例子.该平台的API已经存在了相当长的一段时间,并且出于兼容性原因,Android团队在更改这些界面方面的灵活性较低.图书馆没有这些限制; 例如,如果主机支持它,OkHttp可以使用SPDY协议来降低延迟,压缩,多路复用等,这可以使您的Android应用程序更具响应性.

OkHttp和Retrofit--来自Square的项目 - 可以一起工作.它们也是常规Java库,因此它们不依赖于/基于Android.OkHttp处理较低级别的HTTP连接细节,而Retrofit简化了使用REST API.可以在OkHttp之上使用Retrofit,但这不是必需的.

查看项目网站,它们也托管在github上.

http://square.github.io/okhttp/

http://square.github.io/retrofit/