有没有人使用过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+'
报错图片:
글라이드 추천해도 될까요
https://github.com/bumptech/g...
글라이드 사용
1. 시스템에 대용량 메모리를 사용하는 코드나 무한 루프가 있는지 확인하세요.
2. JVM 시작 매개변수를 추가하여 메모리 사용량을 제한할 수 있습니다: -XX:-UseGCOverheadLimit
프레스코에 속성을 추가하고 이미지 크기를 변경할 수 있습니다
글라이드도 추천합니다. 코드가 간단하고 캐시된 이미지를 자동으로 압축합니다
5.0 미만의 시스템(즉, API21)에서 Fresco는 이미지를 특수 메모리 영역에 배치합니다. 물론, 사진이 표시되지 않을 때는 점유된 메모리가 자동으로 해제됩니다. 이렇게 하면 앱이 더 부드러워지고 이미지 메모리 사용으로 인한 OOM이 줄어듭니다. 프레스코 중국 문서에 적혀 있습니다
이제 최신 버전은 'com.facebook.fresco:fresco:fresco:0.13.0' 컴파일이므로 시도해 볼 수 있습니다.
우선, 저는 여러분을 지지하기 위해 왔습니다.
그 사람들이 Glide를 사용하는 것에 대해 어떻게 생각하는지 모르겠습니다. 글라이드를 사용하는 이유를 알려주실 수 있나요? (저는 항상 글라이드를 사용하지만)
문제가 발생하면 해결해야 합니다. 라이브러리를 바꾸는 것도 하나의 방법이지만 적어도 변경하기 전에 시도하고 실패하는 것이 좋습니다.
궁금한게 있는데 프레스코화는 왜 뜨나요? 업계 최고 인기라고 하지 않나요?
제 생각을 말씀드리겠습니다.
포스터가 정말 이 라이브러리를 OOM에서 빼낸 것이라면, 코드를 확인하여 어디가 불합리한지 확인해 보는 것이 좋을 것 같습니다. 당신이 옳다고 생각한다면, github에 문제를 보내는 것이 좋습니다
이전에 Fresco를 사용하면서 발생한 문제는 Fresco 자체의 문제인 줄 알았습니다. 나중에 보니 정상적인 상황에서는 Fresco 자체가 문제가 되지 않았습니다. 먼저 자신의 코드를 확인하는 것이 좋습니다.
동행 글라이드
이것은 런타임 움이 아닌 컴파일 프로세스 움이며, 어떤 라이브러리가 사용되는지와는 아무런 관련이 없습니다.
으아아아컴파일 프로세스는 OOM을 생성하며 @wordplat이 말했듯이 컴파일 매개변수를 조정해야 합니다
귀하의 문제는 실제로 코드 컴파일 중에 생성된 OOM이며 프레임워크 자체로 인한 문제가 아니므로 JVM 힙 메모리의 크기만 조정하면 됩니다.
으아아아코드만 게시하는 것이 편리한 경우도 있습니다