В настоящее время у меня есть файлы для кэширования приложений в подкаталоге cache
для приложения. Изображения используются в ListView
и хранятся в HashMap
от SoftReferences
до Bitmaps
.Лучшая практика при кешировании файлов в Android
Итак, мой вопрос заключается в том, как наилучшим способом кэшировать эти файлы изображений без раздувания пространства, которое использует мое приложение, и остается отзывчивым с точки зрения пользователя.
Вещи Я обеспокоен:
Я знаю, что пользователь может очистить кэш и что это делается автоматически, когда пространство мало внутренней памяти, но я чувствую, что большинство пользователей будет видеть несколько MB приложение и удалить его , Кроме того, если пространство постоянно низкое, мое приложение будет просто продолжать загрузку изображений, что будет выглядеть медленнее.
Большинство устройств имеют предустановленную SD-карту, но что делать, если она не вставлена? SD-карта также может быть медленнее по сравнению с внутренним хранилищем, что влияет на производительность моего приложения.
Должен ли я включать опцию для выбора местоположения кеша?
Должен ли я попытаться управлять размером кеша (будь то в/cache или/sdcard) или просто забыть об этом?
Благодарим вас за ваше время (его длинный, который я знаю), и, пожалуйста, напишите любое соответствующее событие.
Мне нравится ваша мысль о предотвращении просмотра галереи. При каких условиях галерея забирает их? Я еще не видел случайные снимки, и я знаю, что на моем телефоне есть такие приложения, как twidroid, которые кэшируют их. – smith324
@ chris324 Взгляните на http://developer.android.com/guide/topics/data/data-storage.html#filesExternal под заголовком «Сохранение файлов, которые должны быть доступны» – Eric
@ Эрик спасибо за ссылку, выглядит как внешний каталог с пустым файлом с именем .nomedia, будет игнорироваться медиасканером. Он также выглядит как getExternalCacheDir() - новый в 2.2, который будет полезен. – smith324