私はFrescoプロジェクトのエンジニアの一人です。だから私は明らかに偏っています。
しかし、あなたは私の言葉をそれに取り入れる必要はありません。 Fresco、Picasso、UIL、Glide、Volley Image Loaderの5つのライブラリのパフォーマンスを並べて比較できるサンプルアプリをリリースしました。あなたはそれを 私たちのGitHubリポジトリ で手に入れることができます。
私はまた、FrescoがMaven Centralでcom.facebook.fresco:fresco
として利用可能であることを指摘する必要があります。
フレスコ画は、ピカソ、UIL、そしてグライドがまだ持っていない機能を提供します:
他にもたくさんありますが( 私たちのドキュメントを参照 )、これらが最も重要です。
これは非常に意見に基づく質問なので、フィヨルドの作成をやめて簡単な表を作成したことを念頭に置いてください
ライブラリ比較は難しいです。多くのパラメータで、Frescoを除いて、4つすべてがほぼ同じことをしているからです。新しいメモリレベルの最適化がたくさんあるからです。私の経験に基づいての比較を参照してください。
Frescoの使用量が最も少なかったので、答えは現在のエクスプロイトのために使用し理解し続けるにつれて進化するかもしれません。 used personally
は完成したアプリで少なくとも一度はライブラリを使用しています。
*注 - FrescoはWebPアニメーションだけでなくGIFもサポートするようになりました
これらの答えは全く私の意見です
Picassoは使いやすいイメージローダーですが、Imageloaderも同じです。 Frescoは、イメージのロードに別のアプローチを使用しています。まだ使用していませんが、ネットワークからイメージを取得してキャッシュしてからイメージを表示するためのソリューションのように見えます。それからPicasso/Imageloader/Glideのような他の方法が私にはもっとあるネットワーク上から画像を取得してそれらをキャッシュすることも行います。
グライドはピカソといくらか互換性があるように試みます。それらが作成されたとき、ピカソの考え方がHTTP仕様に従っていて、サーバがキャッシングポリシーを決定し、フルサイズをキャッシュし、要求に応じてサイズ変更できるようにします。グライドはHTTP仕様に従うことと同じですが、フルサイズの画像ではなくサイズ変更された画像をキャッシュしたり、RGB_8888ではなくRGB_565で画像を表示するなど、いくつかの異なる仮定をすることによってメモリフットプリントを小さくします。どちらのライブラリもデフォルト設定を完全にカスタマイズできます。
どのライブラリを使用するのが最善かについては、言うのは本当に難しいです。 Picasso、Glide、Imageloaderは尊敬され、よくテストされたライブラリで、すべてデフォルト設定で使いやすいです。 PicassoとGlideの両方とも、画像をロードしてプレースホルダーとエラー画像を持つのに1行のコードしか必要としません。動作をカスタマイズすることもそれほど多くの作業を必要としません。 PicassoやGlideより古いライブラリでもあるImageloaderについても同じことが言えますが、私はそれを使ったことがないのでパフォーマンス/メモリ使用量/カスタマイズについてはあまり言えませんが、githubのreadmeを見るとそれもまた印象的です比較的使いやすく設定が簡単です。したがって、これら3つのライブラリのいずれかを選択する際に、誤った決定をすることはできません。これは、個人的な好みの問題です。フレスコ画のための私の意見は、それは彼らのためにどのようにうまくいくのかを見なければならないので、私たちは別のfacebookライブラリであるということです。 FacebookのようにSDKはまだmavenCentral上で正式にリリースされていません 私は2014年9月以来facebook sdkに慣れていません、そしてそれは彼らが2014年10月にmavenCentralの上に最初のバージョンをオンラインにしたようです。それで我々がそれについて何か良い意見を得ることができる前にそれはしばらく時間がかかるでしょう。
3つのビッグネームライブラリの間には、大きな違いはないと思います。際立っている唯一のものはフレスコ画ですが、それはそれが異なったアプローチを持っていて、新しくてそして戦闘テストされていないからです。
フレスコ画 ソース | オフサイト
( - )
- 巨大なサイズの図書館
- ビュー付きのコールバックなし、ビットマップパラメータ
- SimpleDraweeViewはwrap_contentをサポートしていません
- 巨大なサイズのキャッシュ
(+)
- かなり高速の画像ローダー(中小画像用)
- 多くの機能(ストリーミング、描画ツール、メモリ管理など)
- xmlで直接設定する可能性(例えば丸い角)
- GIFのサポート
- WebPとAnimated Webpのサポート
ピカソ ソース | オフサイト
( - )
- インターネットからListViewへの大きな画像の読み込みが遅い
(+)
- 図書館のサイズが小さい
- 小さいサイズのキャッシュ
- 使い方が簡単
- UIがフリーズしない
- WebPのサポート
グライド sources
( - )
- 大きいサイズの図書館
(+)
- キャッシュのサイズが小さい
- 使い方が簡単
- GIFのサポート
- WebPのサポート
- インターネットからListViewへの大きな画像の高速ロード
- UIがフリーズしない
- メモリを再利用してGCイベントを減らすためのBitmapPool
ユニバーサルイメージローダー sources
( - )
- 機能が制限されている
- プロジェクトのサポートは2015年11月27日から停止しています
(+)
- 図書館のサイズが小さい
- 使い方が簡単
SGS2(Android 4.1)で私がテストした(WiFi 8.43 Mbps)
Xamarin用ではなく、Java用の公式バージョン!
2015年10月19日
私はGlideを使うのが好きです。
続きを読む ここ 。
外部記憶装置(SDカード)へのキャッシュの書き込み方法 Glide付き
グライドもピカソも完璧ではありません。 Glideが画像をメモリにロードしてキャッシュを実行する方法は、Picassoがイメージをはるかに速くロードするよりも優れています。さらに、人気のあるOutOfMemoryErrorからアプリを防ぐこともできます。 GIFアニメーションの読み込みは、Glideによって提供される強制終了機能です。とにかくピカソはグライドよりも良い品質で画像をデコードします。
どちらが好きですか?私はとても長い間ピカソを使っていますが、私は今グライドを好むことを認めなければなりません。しかし、私はあなたがビットマップフォーマットをARGB_8888に変更して、グライドがフルサイズの画像と最初にサイズ変更されたものの両方をキャッシュするようにさせることを勧めます。残りはあなたの仕事を素晴らしいものにするでしょう!
RGB_565
でより少ないメモリを使用します。+1ピカソ用 パレットヘルパー 。
Picasso vs Glideについて多くの記事があります post
ベンチマーク 私は Picasso、Universal Image Loader、そしてGlideの間で共有したい : https://bit.ly/1kQs3QN
私がテストを実行していたプロジェクトのために、(Draweeビューのために)レイアウトをリファクタリングしたくないので、Frescoはベンチマークから外れました。
私がお勧めするのは、 Universal Image Loader のカスタマイズ、メモリ消費量、およびサイズとメソッドのバランスのためです。
あなたが 小さなプロジェクトを持っているなら、私はGlide に行くでしょう(あるいはFrescoに試してみてください)。