android - fresco库加载图片出现OOM,求使用过的大神解决
ringa_lee
ringa_lee 2017-04-17 17:52:31
0
14
1620

有没有人使用过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+'
报错图片:

ringa_lee
ringa_lee

ringa_lee

全員に返信(14)
刘奇

glide をお勧めできますか
https://github.com/bumptech/g...

いいねを押す +0
迷茫

グライドを使用する

いいねを押す +0
黄舟

1. システムに大量のメモリを使用するコードや無限ループがないか確認します。
2. JVM 起動パラメータを追加してメモリ使用量を制限できます: -XX:-UseGCOverheadLimit

  1. フレスコ画に属性を追加したり、画像のサイズを変更したりできます

いいねを押す +0
小葫芦

グライドもおすすめです。コードはシンプルで、キャッシュされた画像を自動的に圧縮します

5.0 より前のシステム (つまり API21) では、Fresco は画像を特別なメモリ領域に配置します。もちろん、画像が表示されなくなった場合、占有メモリは自動的に解放されます。これにより、APP がよりスムーズになり、画像メモリの使用量によって引き起こされる OOM が軽減されます。中国の文献の壁画に書かれています

最新のものは 'com.facebook.fresco:fresco:0.13.0' をコンパイルします。試してみてください

いいねを押す +0
伊谢尔伦

まず第一に、私はあなたをサポートするためにここにいます。

その人たちが Glide の使用についてどう思っているかわかりません。 Glide を使用する理由も教えていただけますか (私はいつも Glide を使用していますが)

問題が発生した場合は、ライブラリを変更することも 1 つの方法ですが、変更する前に少なくとも試して失敗する必要があります。

質問があるのですが、なぜフレスコ画が浮き上がるのですか?業界で一番人気だと言われてるのではないでしょうか?

私の考えを述べさせてください:
投稿者が本当にこのライブラリを OOM から取り出しているのであれば、それは非常に強力だと思います。コードをチェックして何が不合理なのかを確認した方がよいでしょう。自分の考えが正しいと思うなら、問題を github に送信した方がよいでしょう

いいねを押す +0
迷茫

以前、Fresco を使用していたときにこの問題に遭遇したことがあります。その時は、Fresco 自体の問題ではないかと思いましたが、通常の状況では、Fresco 自体には問題がないことがわかりました。 OOM をトリガーするには、まず自分のコードを確認することをお勧めします。

いいねを押す +0
Peter_Zhu

同時グライド

いいねを押す +0
巴扎黑

これはランタイム oom ではなくコンパイル プロセス oom であり、使用されるライブラリとは関係ありません。
@wordplat が言ったように、コンパイル プロセスでは OOM が生成され、コンパイル パラメーターを調整する必要があります

リーリー
いいねを押す +0
小葫芦

問題は実際にはコードのコンパイル中に生成される OOM であり、フレームワーク自体によって引き起こされる問題ではないため、JVM ヒープ メモリのサイズを調整するだけで済みます。

リーリー
いいねを押す +0
刘奇

コードを投稿するだけで便利な場合もあります

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート