Android Picasso 라이브러리는 정말 편리한 안드로이드 이미지 라이브러리입니다.
http://square.github.io/picasso/
이미지 로딩, 인터넷에서 이미지 읽어오기, 부드럽게 화면에 서서히 출력하기 등등
정말 편리한 기능을 몇 줄의 라인으로, 거의 버그없이 표현가능한 멋진 라이브러리입니다.
살짝 불편한 점이 있는데, 메모리 해제 방법입니다.
인터넷에서 Picasso의 메모리 해제 방법을 찾아보면:
1. Picasso 전체 라이브러리를 받아서, 메모리 해제 부분을 새로 구현해야한다
http://stackoverflow.com/questions/27502659/clear-cache-memory-of-picasso
2. 파일명 / URL을 가지고 있다면 하나씩 하나씩 해제할 수 있다
http://stackoverflow.com/questions/22016382/invalidate-cache-in-picasso
등등의 내용이 있습니다.
하지만 1번 방법을 위해서는 Picasso의 jar를 이용하는게 아니라, 프로젝트를 받아서 빌드해야 하고
2번 방법은... 파일명이나 URL을 모두 기억하고 있는 객체가 필요합니다.
하지만 이 방법 말고 좀 더 편하게 전체 메모리를 해제할 수 있는 방법도 있습니다.
비법은 com.squareup.picasso.LruCache 객체를 생성해서 picasso에 넣어주는 것입니다.
먼저... 선언을 하고,
private Picasso picasso; private LruCache picassoLruCache;
생성을 한 뒤 LruCache를 넣어줍니다.
picassoLruCache = new LruCache(this); picasso = new Picasso.Builder(this) // .memoryCache(picassoLruCache) // .build();
그리고 나서, 필요한 시점 (제 경우에는 onDestory) 에서 메모리 클리어를 눌러주면 메모리 해제 완료!
@Override protected void onDestroy() { super.onDestroy(); picassoLruCache.clear(); }
DDMS에서 확인해 보니, 제 경우에는 시작 시 11메가 -> 이미지 로딩 시 20메가 -> 메모리 해제 시 11메가로 완벽하게 동작했습니다.
* http://markup.su/highlighter/ 로 코드를 컬러링했습니다
'Android' 카테고리의 다른 글
Kitkat이상, switch 문에서 String 을 이용하기 (0) | 2015.08.18 |
---|---|
Lombok을 Android eclipse (Luna) 에서 이용하기 (0) | 2015.06.24 |
Eclipse Metrics plugin을 이용한 소스 규모 측정 (0) | 2015.04.28 |
디버그 모드에서만 동작하는 코드 & 크래쉬 로그를 저장하는 방법 (0) | 2015.03.30 |
이클립스의 유용한 플러그인 (3) | 2014.05.24 |