有没有人使用过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+'
报错图片:
Puis-je recommander la glisse
https://github.com/bumptech/g...
Utiliser Glide
1. Vérifiez si le système contient du code qui utilise une grande mémoire ou une boucle infinie.
2. Vous pouvez ajouter des paramètres de démarrage JVM pour limiter l'utilisation de la mémoire : -XX:-UseGCOverheadLimit
Vous pouvez ajouter des attributs à la fresque et modifier la taille de l'image
La glisse est également recommandée. Le code est simple et compresse automatiquement les images mises en cache
Dans les systèmes inférieurs à 5.0 (c'est-à-dire API21), Fresco place les images dans une zone mémoire spéciale. Bien entendu, lorsque l'image ne s'affiche pas, la mémoire occupée sera automatiquement libérée. Cela rendra l'application plus fluide et réduira le MOO causé par l'utilisation de la mémoire d'image. C’est écrit dans la fresque du document chinois
Et la dernière en date est la compilation 'com.facebook.fresco:fresco:0.13.0', vous pouvez l'essayer
Tout d’abord, je suis là pour vous soutenir.
Je ne sais pas ce que ces gens pensent de l'utilisation de Glide. Pouvez-vous même me dire pourquoi vous utilisez Glide (même si j'utilise toujours Glide)
Lorsque vous rencontrez un problème, vous devez le résoudre. Changer la bibliothèque est une solution, mais au moins vous devriez essayer et échouer avant de changer.
J'ai une question, pourquoi la fresque arrive-t-elle ? Ne dit-on pas que c'est le plus populaire de l'industrie ?
Laissez-moi vous dire ce que je pense :
Si l'affiche sort vraiment cette bibliothèque du MOO, je pense qu'elle est assez puissante. Vous pourriez aussi bien vérifier le code pour voir où c'est déraisonnable. Si vous pensez avoir raison, vous pouvez aussi bien envoyer un problème à github
J'ai déjà rencontré votre problème en utilisant Fresco. À cette époque, je soupçonnais qu'il s'agissait d'un problème avec Fresco lui-même. Plus tard, j'ai découvert qu'il s'agissait d'un problème avec mon propre code. Dans des circonstances normales, Fresco lui-même ne le ferait pas. déclencher le MOO. Il est recommandé de vérifier d'abord votre propre code.
Même glisse
Il s'agit du processus de compilation oom, pas de l'exécution oom, et n'a rien à voir avec la bibliothèque utilisée.
Le processus de compilation produit un MOO et les paramètres de compilation doivent être ajustés, comme l'a dit @wordplat
Votre problème est en fait un MOO généré lors de la compilation du code, et non un problème causé par le framework lui-même, il vous suffit donc d'ajuster la taille de la mémoire du tas JVM.
Parfois, il est pratique de poster du code