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


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

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

궁금한게

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

여기서 질문을 드리면

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

ex)
bc58db106dfbdbf4dc8686589b160ec4.1
bc58db106dfbdbf4dc8686589b160ec4.0
  1. cache폴더에 있는 파일을 사용 할 수 있는지 궁금합니다. (이미 다운로드 된거라 다시 사용하고 싶습니다.)
  2. 감사합니다.
  • 2016년 10월 08일에 수정됨
    리눅스(유닉스) 기반의 시스템에서 웹 서비스를 개발하고 있습니다.
  • 2016년 10월 06일에 작성됨

조회수 112


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로 이미지를 로드하면 됩니다.


로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close