有没有人使用过fresco库加载图片解决OOM问题的?因为我的项目需要大量加载图片,用了fresco库主要就是想解决GC相关OOM问题,但是发现项目在AS中使用fresco库运行在21安卓版本以下还是会出现OOM问题,运行在21及以上的版本不会出现任何问题,gradle一些相关语句如下:
compileSdkVersion 23
buildToolsVersion '23.0.3'
minSdkVersion 15
targetSdkVersion 23
compile 'com.facebook.fresco:fresco:0.9.0+'
报错图片:
glide をお勧めできますか
https://github.com/bumptech/g...
グライドを使用する
1. システムに大量のメモリを使用するコードや無限ループがないか確認します。
2. JVM 起動パラメータを追加してメモリ使用量を制限できます: -XX:-UseGCOverheadLimit
フレスコ画に属性を追加したり、画像のサイズを変更したりできます
グライドもおすすめです。コードはシンプルで、キャッシュされた画像を自動的に圧縮します
5.0 より前のシステム (つまり API21) では、Fresco は画像を特別なメモリ領域に配置します。もちろん、画像が表示されなくなった場合、占有メモリは自動的に解放されます。これにより、APP がよりスムーズになり、画像メモリの使用量によって引き起こされる OOM が軽減されます。中国の文献の壁画に書かれています
最新のものは 'com.facebook.fresco:fresco:0.13.0' をコンパイルします。試してみてください
まず第一に、私はあなたをサポートするためにここにいます。
その人たちが Glide の使用についてどう思っているかわかりません。 Glide を使用する理由も教えていただけますか (私はいつも Glide を使用していますが)
問題が発生した場合は、ライブラリを変更することも 1 つの方法ですが、変更する前に少なくとも試して失敗する必要があります。
質問があるのですが、なぜフレスコ画が浮き上がるのですか?業界で一番人気だと言われてるのではないでしょうか?
私の考えを述べさせてください:
投稿者が本当にこのライブラリを OOM から取り出しているのであれば、それは非常に強力だと思います。コードをチェックして何が不合理なのかを確認した方がよいでしょう。自分の考えが正しいと思うなら、問題を github に送信した方がよいでしょう
以前、Fresco を使用していたときにこの問題に遭遇したことがあります。その時は、Fresco 自体の問題ではないかと思いましたが、通常の状況では、Fresco 自体には問題がないことがわかりました。 OOM をトリガーするには、まず自分のコードを確認することをお勧めします。
同時グライド
これはランタイム oom ではなくコンパイル プロセス oom であり、使用されるライブラリとは関係ありません。
リーリー@wordplat が言ったように、コンパイル プロセスでは OOM が生成され、コンパイル パラメーターを調整する必要があります
問題は実際にはコードのコンパイル中に生成される OOM であり、フレームワーク自体によって引き起こされる問題ではないため、JVM ヒープ メモリのサイズを調整するだけで済みます。
リーリーコードを投稿するだけで便利な場合もあります