대용량 (~ 100) 비트 맵, 즉 음악 커버 아트를 운영하는 앱이 있습니다. 비트 맵은 큰 배경과 작은 (50dip) 아이콘으로 두 가지 방식으로 사용됩니다. 두 개의 크기를 별도의 비트 맵으로 미리로드하고 캐시하는 것이 맞습니까? 두 가지 방법을 모두 구현했습니다 (두 가지 크기의 아이콘으로 큰 비트 맵을 사용하십시오). 그러나 실제 성능 차이는 볼 수 없습니다. 이러한 상황에 가장 적합한 방법은 무엇입니까?Android 비트 맵 캐싱
2
A
답변
7
두 이미지 크기를 모두 캐싱하는 것은 의미가 없습니다. 너무 많은 기억.
- , 당신은 당신이 메모리가 부족하지 않도록 할 수 있습니다 이런 식으로 캐시가 SoftReferences 사용하고 있는지 확인하고 항상 새로운 비트 맵을로드 할 수
모범 사례 (내 소견으로) 것 낡은 것을 잃어 버리는 "비용"에 대해
- Canvas의 drawBitmap 메서드를 사용하여 큰 비트 맵을 더 작게 만듭니다.
- OutOfMemoryError을 경계해야하며 Throwable의 하위 클래스이고 Exception의 하위 클래스가 아니므로
catch(Exception e)
절은이를 catch하지 않습니다.
1
개인적으로 저는 메모리에서 유지하고있는 비트 맵 수를 제한하기 위해 최선을 다할 것입니다. 아이콘이 더 큰 비트 맵의 축소 된 사본으로 잘 보이는 경우, 나는 그 접근 방식을 선호합니다. 이것은 내 개인적인 경험 때문에 편향된 의견 일지 모르겠지만, 안드로이드에 대한 나의 경험에서 겪었던 가장 큰 문제는 비트 맵으로 작업 할 때 메모리가 부족한 상태입니다.
관련 문제
- 1. android 비트 맵 캐싱
- 2. 비트 맵 캐싱
- 3. 캐싱 비트 맵 코드가 혼동
- 4. 비트 맵 캐싱 또는 png?
- 5. 비트 맵 (Android)
- 6. Android 삭제 가능 비트 맵
- 7. 경로의 스탬프 비트 맵 - Android
- 8. Android MapView 비트 맵 문제
- 9. Android 위젯 비트 맵 크기
- 10. 다른 비트 맵 아래의 비트 맵 GetPixel?
- 11. Android : 새 데이터로 비트 맵 새로 고침
- 12. Android Force 리사이클 큰 비트 맵?
- 13. 그레이 스케일 Iplimage to android 비트 맵
- 14. Android 비트 맵 이미지 크기 조정
- 15. Android 2.1 기본 잠금 비트 맵 픽셀
- 16. Android : 비트 맵 자르기 (이상한 방법)
- 17. 많은 이미지를로드하기 위해 Android 비트 맵 재사용
- 18. Android 캔버스 비트 맵 크기 및 측정
- 19. Android OOM 이미지 캡쳐가있는 비트 맵
- 20. Android Center Canvas에 크기가 큰 비트 맵
- 21. Android 개발 : 비트 맵 및 직사각형?
- 22. Android : Canvas.drawBitmap() 또는 Imageview.setImageBitmap (비트 맵)
- 23. java.lang.outofmemoryerror 비트 맵 크기가 비트 맵에서 비트 맵 크기를 초과했습니다
- 24. Android : 다른 비트 맵에 여러 비트 맵 그리기
- 25. android : 하나의 비트 맵에서 비트 맵 배열을 병합하는 방법은 무엇입니까?
- 26. 비트 맵 이미지 비교
- 27. Android 이미지 캐싱 - 어떻게?
- 28. 비트 맵 개체와 비트 맵 파일의 차이점은 무엇입니까?
- 29. Windows 프로그래밍 : ID2D1 비트 맵 인터페이스 - 비트 맵 데이터 얻기
- 30. 오프라인 사용을위한 Monotouch - 캐싱 맵
'SoftReference'에 감사드립니다! 그것이 내가 놓친 중요한 점이다. –
getCacheDir()/getExternalCacheDir()을 사용하여 임시로 내부/외부 저장소의 항목을 캐싱하겠습니까? Android가 SoftReference를 적극적으로 회수 할 수 있으며 앱을 디자인하는 동안 장기적으로 고려해야 할 더 많은 문제가 발생할 수 있다고 들었습니다. –
두 가지 관련이 없습니다. softreferences를 사용하여 메모리가 부족하지 않은지 확인해야합니다. 영구 저장소에 캐싱은 필요할 때 이미지를 빠르게로드하는 데 유용 할 수 있지만 이미지의 원본에 따라 다릅니다. 웹에서 온 경우 다른 응용 프로그램의 리소스이거나 연락처에있는 것이 분명합니다. 사진, 그럴 필요는 없습니다. – Lior