Почему я должен использовать OkHttp вместо android httpClient и AsyncTask

В презентации Paresh Mayani на SpeakerDeck (https://speakerdeck.com/pareshmayani/lazy-android-developers-be-productive) он говорит, что лучше использовать OkHttp или Retrofit вместо этого AsyncTask с DefaultHttpClient.

Мой вопрос: почему?
Почему они быстрее?
Разве это не библиотеки, основанные на стандартном классе Android?
В чем разница между OkHttp и Retrofit?

Спасибо!

Ответы

Ответ 1

Как всегда, проектирование заключается в балансировании компромиссов для создания наилучшего решения для ваших требований.

Использование библиотеки вместо платформы - хороший пример. API платформы существует довольно долгое время, и по соображениям совместимости команда Android имеет меньшую гибкость в изменении этих интерфейсов. У библиотеки нет этих ограничений; например, если хост поддерживает его, OkHttp может использовать протокол SPDY для более низкой латентности, сжатия, мультиплексирования и т.д., что может сделать ваше приложение Android более отзывчивым.

OkHttp и Retrofit - проекты из Square - могут работать вместе. Они также являются обычными библиотеками Java, поэтому они не зависят от/на основе Android. OkHttp обрабатывает детали HTTP-соединения нижнего уровня, а Retrofit упрощает использование API REST. Дооснащение можно использовать поверх OkHttp, но это не требуется.

Проверьте веб-сайты проектов, они также размещены на github.

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

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