[解決済み] Androidネットワークライブラリの比較。OkHTTP、Retrofit、Volley [終了しました]。
質問
Androidを学習中のiOS開発者が、JSONから画像、音声や動画のストリーミングダウンロードまで、さまざまなリクエストを行うAndroidプロジェクトに取り組んでいて、2つのパートからなる質問をしました。
-
iOSの場合、私は AFNetworking プロジェクトは広範囲に渡っています。Android用の同等のライブラリはありますか?
-
を読みました。 OkHTTP と レトロフィット by Square、そして ボレー が、まだ開発した経験がありません。どなたか、それぞれのベストユースケースの具体例を教えていただければと思います。私が読んだ限りでは、OkHTTPは3つの中で最も堅牢で、このプロジェクトの要件(上記)を処理できるように思われます。
どのように解決するのですか?
<ブロッククオートどなたか、それぞれのベストユースケースの具体例を教えていただければと思います。
Webサービスと通信する場合は、Retrofitを使用します。画像をダウンロードする場合は、ピアライブラリPicassoを使用します。RetrofitやPicassoの外にあるHTTP操作が必要な場合は、OkHTTPを使ってください。
Volleyは、Retrofit + Picassoとほぼ競合しています。プラス面は、1つのライブラリであることです。一方、マイナス面は <ストライク 文書化されていないものが1つあります。 サポートされていない、quot;コードを壁に投げつけ、それについてI|Oプレゼンテーションを行う" ライブラリ。
EDIT - VolleyがGoogleに正式にサポートされました。ご参考までに Googleデベロッパーガイド
<ブロッククオート私が読んだ限りでは、OkHTTPは3つの中で最も堅牢なようです。
Retrofitは、OkHTTPが利用可能な場合は自動的に使用します。また Jake WhartonのGist は、VolleyとOkHTTPを接続するためのものです。
<ブロッククオートで、このプロジェクトの要件(上記)を処理することができました。
おそらく、従来のストリーミングの定義では、音声や映像のストリーミングダウンロードには使用しないでしょう。その代わり、AndroidのメディアフレームワークがこれらのHTTPリクエストを処理します。
とはいえ、もし自分でHTTPベースのストリーミングを行おうとするならば、OkHTTPがそのシナリオを処理するはずです。Volleyがそのシナリオをどの程度処理できるかは覚えていません。RetrofitもPicassoも、そのために設計されたものではありません。
関連
-
[解決済み] Androidのgravityとlayout_gravityの違いは何ですか?
-
[android studio]com.android.ide.common.process.ProcessException: aaptの実行に失敗しました
-
プログラム "git.exe "を実行できない場合の正しい解決方法です。CreateProcessエラー=2
-
Android Nで報告されたエラーを解決する: android.os.FileUriExposedException: file:///storage/emulated/0/
-
Androidプロセス生存のためのソリューション
-
AndroidでListViewを使ってカスタムテーブルを描画する
-
Android TextViewは、テキスト内容が表示省略記号を超えているかどうかを判断する
-
[解決済み] Androidで現在の時刻と日付を取得する方法
-
[解決済み] Androidでファイルをダウンロードし、ProgressDialogで進捗を表示する。
-
[解決済み] OkHttpがあるのに、なぜRetrofitを使うのか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
android E/RecyclerView﹕ アダプタが接続されていないため、レイアウトをスキップする。
-
AndroidStudio3.0 Error:Execution failed for task ':app:processDebugResources'.
-
エラー:未宣言の識別子(AS)の使用
-
JVMのエラーに遭遇しました。Java Runtime Environmentによって致命的なエラーが検出されました。
-
ConstraintLayoutのいくつかのプロパティの概要(RelativeLayoutの強化版、LinearLayoutの比例プロパティを含む、階層ツールの削減)。
-
SpinnerのOnItemSelectedListenerのonItemSelectedメソッドの4つのパラメーターの意味
-
Android Studioのgitの使用とgitの設定パス
-
Android.support.v7.widget.Toolbar が見つかりませんでした。
-
[解決済み] android.os.NetworkOnMainThreadException' を修正するにはどうすればよいですか?
-
[解決済み] OkHttpがあるのに、なぜRetrofitを使うのか?