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