моё приложение содержит кучу инфы с картинками. что-то типа учебника с тестами. юзверь выбирает тему и просматривает её, потом проходит тест. всё реализовал, вопросов не возникло, но вот ужаснулся при набивании контента. очень много получилось картинок - около 200 МБ после того как пожал всё))) а ведь хочется картинки хорошего качества, вдруг на планшете во весь экран будут их просматривать)
Более того, если юзверь не зайдёт в соответствующий раздел, то никогда не увидит картинки из этого раздела. Закачивать ему ВСЕ нет смысла.
Есть интернет-сервер.
идея такая: залить картинки на сервер и при выборе раздела подкачивать соответствующие картинки из сети.
и тут масса вопросов:
как их дёрнуть и куда? так чтобы второй раз не перекачивать...
кто сталкивался с подобным, поделитесь мыслями. Конечно, готовый код не прошу, но хотя бы по методике действий соориентируйте.
п.с. Ну, примерчик скачивания по урлу в виде кода не помешал бы)
Как подтягивать графические ресурсы с сервера?
-
- Сообщения: 115
- Зарегистрирован: 08 янв 2015, 14:32
-
- Сообщения: 115
- Зарегистрирован: 08 янв 2015, 14:32
Re: Как подтягивать графические ресурсы с сервера?
Эммм... спасибо большое за нужное направление вектора...
Теперь у меня возникли вопросы по кэшу. Нашёл на просторах сети вот такой пример:
топорно можно кэшировать изображения. Только не пойму принципа работы. Где хранится этот кэш? при перезагрузке обнуляется? и ещё, как я понял дройд подкачивает его в память - какбы держит на готове... Только вот механизм не понятен. Повторюсь, у меня порядка 300 МБ картинок. Я подкачиваю их на ходу в бэкграунде и закидываю в кэш. Когда нужна картинка, проверяю в кэше и если её нет, то докачиваю. Всё просто. Но!
Сколько оно жрёт оперативы? сколько можно картинок (или в килобайтах оно измеряется) туда запихать? В общем какие у него ограничения? у меня не предусмотрено никакой логики на случай, если памяти нехвата)))
Подскажите, кто сталкивался? надо делать проверки на размерность и свободное место?
Теперь у меня возникли вопросы по кэшу. Нашёл на просторах сети вот такой пример:
Код: Выделить всё
import android.support.v4.util.LruCache;
public class Cache {
private static Cache instance;
private LruCache<Object, Object> lru;
private Cache() {
lru = new LruCache<Object, Object>(1024);
}
public static Cache getInstance() {
if (instance == null) {
instance = new Cache();
}
return instance;
}
public LruCache<Object, Object> getLru() {
return lru;
}
}
Сколько оно жрёт оперативы? сколько можно картинок (или в килобайтах оно измеряется) туда запихать? В общем какие у него ограничения? у меня не предусмотрено никакой логики на случай, если памяти нехвата)))
Подскажите, кто сталкивался? надо делать проверки на размерность и свободное место?
-
- Сообщения: 115
- Зарегистрирован: 08 янв 2015, 14:32
Re: Как подтягивать графические ресурсы с сервера?
разобрался с механизмом: Картинки кэшируются в кэш приложения. В настройках у приложения можно видеть общий размер + размер данных (preference) + кэш.
остаётся вопрос, что будет при нехватке памяти и нужно ли проверять свободное место перед кэшированием?
остаётся вопрос, что будет при нехватке памяти и нужно ли проверять свободное место перед кэшированием?
Re: Как подтягивать графические ресурсы с сервера?
могу порекомендовать ограничить размер кэша на диске (например 50МБ) и чекать его периодически. При переполнении удалять самые старые файлы из папки.