출처
: http://pluu.github.io/blog/android/2016/01/19/glide-cache/
최근 Glide의 최신버전은 3.6.1
(현재 2016년 1월 19일 기준)입니다.
기존에 개인 프로젝트로 Glide를 이용 중 3.5
부터 Cache 부분이 변경되었다는 것을 뒤늦게 알아차리고 포스팅 해봅니다.
Glide는 이미지 다운로드 및 Disk/Memory 캐시를 이용하여 더 빠른 이미지 접근을 가능하게 해주는 라이브러리입니다.
3.5 이전 Cache 처리
private final static int maxMemory = (int) (Runtime.getRuntime().maxMemory() / 1024);
private final static int cacheSize = maxMemory / 8;
private final static int DISK_CACHE_SIZE = 1024 * 1024 * 10;
Glide.setup(new GlideBuilder(this)
.setMemoryCache(new LruResourceCache(cacheSize))
.setDiskCache(new DiskCache.Factory() {
@Override
public DiskCache build() {
File cacheLocation = new File(getExternalCacheDir(), "cache");
cacheLocation.mkdirs();
return DiskLruCacheWrapper.get(cacheLocation, DISK_CACHE_SIZE);
}
}));
기존에는 GlideBuilder를 이용하여 캐시 작업이 이루어졌습니다.
Disk 캐시는 외부 캐시폴더 cache
라는 폴더명을 사용
3.5 이후 처리
하지만, 3.5부터는 GlideModule
을 이용하여 캐시를 설정하도록 변경되었습니다.
작업 사항
GlideModule
를 implements 한 Class 작성applyOptions
함수 내부에서 Disk/Memory 캐시 작업을 작성AndroidManifest
에 GlideModule를 이용한 Class 등록
public class MyGlideModule implements GlideModule {
private final int maxMemory = (int) (Runtime.getRuntime().maxMemory() / 1024);
private final int cacheSize = maxMemory / 8;
private final int DISK_CACHE_SIZE = 1024 * 1024 * 10;
@Override
public void applyOptions(Context context, GlideBuilder builder) {
builder.setDiskCache(new ExternalCacheDiskCacheFactory(context, "cache", DISK_CACHE_SIZE))
.setMemoryCache(new LruResourceCache(cacheSize));
}
@Override
public void registerComponents(Context context, Glide glide) {
}
}
기타
기존 Glide.setUp
에 대한 기능은 Gldie 4.0에 제거 될 예정
입니다.
참고 링크
'IT_Programming > Dev Libs & Framework' 카테고리의 다른 글
[펌] spring profile 을 사용하여 환경에 맞게 deploy 하기 (0) | 2016.02.11 |
---|---|
[펌][SPRING] 배포 환경 별 설정 분리하기 (0) | 2016.02.11 |
[Cordova] Cordova network check (0) | 2016.01.13 |
[펌] JSTL Custom tag에 Spring Bean 주입하기 (0) | 2015.11.27 |
[펌] REACTJS 둘러보기 – XHP 부터 REACT NATIVE 까지 (0) | 2015.09.15 |