Android(Kotlin)

Android LruCache kotlin

----___<<<<< 2021. 10. 6. 16:04

 안드로이드 개발을 하면서 이미지를 가져와봤으면 Glide를 당연히 사용해봤을 겁니다.

 

 glide를 사용하면 이미지 캐싱 어쩌고 나와 있는데, 그러면 비트맵 이미지 캐싱은 어떻게 하는가 하는 의문이 들어서 찾아보니 

 

 LruCache라는 것이 있네요.

 

https://developer.android.com/topic/performance/graphics/cache-bitmap?hl=ko

 제가 직접 비트맵 이미지 코드를 짜기 귀찮으니 구글에서 찾아봤습니다.

 

 캐싱을 공부하던 도중에, 메모리에 다 올려버려도 될까? 라는 생각이 드는 와중에

 

 코드 중간에 조금 특이한 부분이 cacheSize라고 지정해주는 부분이 있습니다.

 

 maxMemory/8 만큼 메모리를 할당한다는 것인데 저렇게 하면 되나? 라는 생각이 들어서 찾아보니

 

모든 애플리케이션에 적합한 특정 크기나 수식은 없으며 사용량을 분석하여 적합한 해결책을 찾아야 합니다. 캐시가 너무 작으면 아무런 이점 없이 추가 오버헤드가 발생하고 캐시가 너무 크면 또다시 java.lang.OutOfMemory 예외가 발생하여 앱의 나머지 부분에 사용할 메모리가 거의 남아 있지 않을 수 있습니다. 

 

 구글에서는 위와 같이 설명하고 있습니다.

 

 그냥 요령껏 알아서 잘 해라 라고 나와있네요

 

 그러면 메모리가 아닌, 디스크 캐시도 사용할 수 있을까 해서 찾아보면 DiskLruCache라는 것도 있습니다.

 

 

 

 위와 같이 디스크캐시 사용해줄 수 있습니다.

 

 끝.

 

 

 

https://www.charlezz.com/?p=44551 

 

안드로이드에서 LruCache를 파헤치기 | 찰스의 안드로이드

LruCache란? 면접 또는 코딩테스트에서 흔히 접할 수 있는 주제가 바로 LruCache다. 안드로이드에서는 LruCache가 어떻게 동작하고, 언제 그리고 어디서 사용되는지 한번 알아보도록 하자. LruCache에서 Lr

www.charlezz.com

https://developer.android.com/topic/performance/graphics/cache-bitmap?hl=ko 

 

비트맵 캐싱  |  Android 개발자  |  Android Developers

단일 비트맵을 사용자 인터페이스(UI)에 로드하는 것은 간단하지만 한 번에 더 큰 이미지의 집합을 로드해야 하면 더 복잡해집니다. 많은 경우(ListView, GridView 또는 LruCache 클래스와 같은 구성요소

developer.android.com

 

'Android(Kotlin)' 카테고리의 다른 글

setvalue postvalue 차이  (0) 2021.10.08
코루틴과 쓰레드의 차이  (0) 2021.10.07
Simple ViewPager  (0) 2021.10.01
Android thread, Handler, Looper  (0) 2021.09.14
Shared Preferences  (0) 2021.09.10