#android #picasso #okhttp
#Android #picasso #okhttp
Вопрос:
Я использую Picasso для загрузки изображений и использую пользовательскую реализацию клиента загрузки OkHttp, в которой мы создали пользовательский кеш размером около 153 МБ. Мне интересно, переопределит ли это кэш памяти по умолчанию, который Picasso имеет 15% от выделенной оперативной памяти на устройстве.
Ответ №1:
Настройка дискового кэша HTTP-клиента не влияет на кэш памяти Picasso.
Дисковый кэш внутри OkHttp кэширует необработанные ответы, полученные при выполнении HTTP-запросов. Он делает это в соответствии с заголовками HTTP-кэширования, которые возвращаются в ответах, и сохраняет их в LRU в файловой системе. Поскольку ответы хранятся в виде непрозрачных байтов, это загружаемые полноразмерные изображения.
Picasso имеет кэш памяти, в котором хранятся декодированные и преобразованные изображения. Это результат запроса запроса HTTP-клиенту и декодирования байтов, которые он возвращает (либо из дискового кэша, либо из сети) в Bitmap
объект. Эти объекты также хранятся в LRU, но в памяти.
Эти два уровня кэширования вообще не взаимодействуют друг с другом. Таким образом, определение пользовательского HTTP-кэша никак не повлияет на кэш памяти, точно так же, как изменение конфигурации кэша памяти не повлияет на работу HTTP-кэша.