안드로이드에서 Picasso 라이브러리가 생성하는 캐쉬 파일에 대한 질문입니다.

조회수 1773회

android에서 picasso를 사용중입니다.

picasso에 downloader는 OkHttpDownloader를 설정해서 사용을 하고 있습니다.

궁금한게

내부 로직을 보니 cache폴더 밑에 picasso-cache폴더에 cache가 되고 있는걸로 보이는데

여기서 질문을 드리면

1.파일명이 어떤 기준으로써 만들어 지는지 궁금합니다.

ex)
bc58db106dfbdbf4dc8686589b160ec4.1
bc58db106dfbdbf4dc8686589b160ec4.0
  1. cache폴더에 있는 파일을 사용 할 수 있는지 궁금합니다. (이미 다운로드 된거라 다시 사용하고 싶습니다.)
  2. 감사합니다.

1 답변

  • 파일명은 OkHttp의 Cache.java에 있는 urlToKey()라는 함수를 통해서 생성되는 것으로 보입니다. 파일명의 소스는 이미지 url이라고 이해하셔도 무리가 없을 것 같고요.

      private static String urlToKey(Request request) {
        return Util.md5Hex(request.url().toString());
      }
    

    디스크 캐시에 저장된 파일을 사용하고 싶다고 하셨는데요. Picasso를 사용해서 이미지를 로드하고 있다면 이미 내부적으로 이 파일을 사용하고 있는 것입니다. Picasso의 내부 캐시 로직에 의해서 이미지를 메모리에서 읽거나 혹은 디스크에서 읽도록 처리가 되어있습니다.

    예를 들면 http://a.jpg 라는 이미지를 Picasso를 통해 로드하면 메모리와 디스크 캐시에 저장이 되고, 다음번 같은 이미지 로드 시, 메모리와 파일 캐시를 활용하게 됩니다. 따라서 다운로드 된 파일을 사용하고 싶다면 단순히 같은 url로 이미지를 로드하면 됩니다.

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)