web-dev-qa-db-ja.com

Android httpClientおよびAsyncTaskの代わりにOkHttpを使用する理由

SpeakerDeckでのParesh Mayaniのプレゼンテーション( https://speakerdeck.com/pareshmayani/lazy-Android-developers-be-productive )は、OkHttpを使用する方が良いと言っていますRetrofitAsyncTaskの代わりにDefaultHttpClient

私の質問はなぜですか?
なぜ高速なのですか?
これらもデフォルトのAndroidクラスに基づくライブラリではありませんか?
OkHttpとRetrofitの違いは何ですか?

20
RCB

いつものように、エンジニアリングはトレードオフのバランスを取り、要件に最適なソリューションを構築することです。

プラットフォームの代わりにライブラリを使用することは良い例です。プラットフォームのAPIはかなり以前から存在しており、互換性の理由からAndroidチームはこれらのインターフェイスを変更する際の柔軟性が低くなっています。ライブラリにはこれらの制約がありません。たとえば、ホストはそれをサポートしていますOkHttpはSPDYプロトコルを使用してレイテンシの短縮、圧縮、多重化などを行うことができます。これにより、Androidアプリの応答性が向上します。

SquareのプロジェクトであるOkHttpとRetrofitは連携して動作します。これらは通常のJavaライブラリであるため、Androidに基づく/に依存しません。OkHttpは下位レベルのHTTP接続の詳細を処理し、RetrofitはREST = API。RetrofitはOkHttpの上で使用できますが、必須ではありません。

プロジェクトのWebサイトを確認してください。これらはgithubでもホストされています。

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

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

21
chickenbane