Intereting Posts
Прохождение массивов с использованием пакета в android Ошибка GooglePlay: не удается загрузить тестовый APK Поддержка классов Robolectric Library для Android. Как загрузить библиотечный класс R из проекта приложения Почему NotificationManager работает так медленно во время обновления? Виджет не обновляется при перезапуске Предварительный просмотр камеры для Android Почему существуют разные возможности для активных и неактивных значков в материальном дизайне? Как настроить цвет цвета CheckMark в андроиде в диалоговом окне. : Android Как добавить значки в Предпочтение Почему моя активность расширяет ActionBarActivity? Сохранение позиции в ListView после вызова notifyDataSetChanged Android-андроид 2.2 сжимает все файлы в встроенном apk Start Failed: Внутренняя ошибка при запуске Android Studio на ubuntu Диспетчер аварийных сигналов не работает в определенный заданный интервал времени TimeoutException в MediaRecorder.finalize () через 10 секунд

Android: сохранение изображений в базе данных Sqlite

Им интересно, будет ли хорошая идея хранить изображения в виде BLOB в базе данных sqlite? Имеет ли кто-либо производительность – опыт хранения изображений (blob).

Мое приложение для Android будет небольшим, и вам нужно будет обрабатывать от 20 до 100 изображений (100 кб до 1 МБ на изображение). Худший случай: я бы сказал, что моя база данных может достигать 100 МБ. Значительно ли это влияет на производительность базы данных? Средний случай: я предполагаю, что средний пользователь моего приложения имеет 40 изображений с 200 кб на изображение, поэтому размер базы данных будет около 8 МБ. Btw. Конечно, в базе данных хранятся и другие «нормальные» данные, поэтому его не только база данных изображений 🙂

Сохраняет ли путь к изображению, хранящемуся на хранилище (внутренней или SD-карте), лучший подход? Я предполагаю, что извлечение пути файла изображения из базы данных и открытие и загрузка изображения из файла будет немного медленнее (но не очень важно, так как мне нужно одновременно загружать только два изображения).

Второй вопрос: если я буду использовать второй подход (сохраните путь к файлу изображения в базе данных и загрузим файл изображения): В этом случае полезен ли кеш диска (DiskLruCache)? Будет ли это приносить значительный прирост производительности? Я понимаю, что кэш-диск будет хранить растровые изображения (вместо кодированного jpg или png), и поэтому кэш-диск будет загружать растровое изображение непосредственно из хранилища, и мое приложение будет экономить время для декодирования изображения (jpg или png). Это верно? Btw. В «подходе базы данных» я бы сохранил изображение, уже декодированное как растровое изображение. Таким образом, мне кажется, что это похоже на кеш диска, не так ли?

Edit: Я забыл сказать вам, что мне нужно хранить изображения, постоянно присутствующие на устройстве. Я не говорю о кэшировании изображений, которые, например, я получил из веб-службы …

Я предполагаю, что база данных будет значительно медленнее, если вы храните в ней большую часть информации, особенно когда вы сами извлекаете изображения.

С другой стороны, как я понял, каждый пользователь имеет связанные с ним изображения, загруженные после установки приложения. Это идеальное место для использования библиотеки, которую мне рекомендовал другой SO-пользователь в моем вопросе. Я спросил пару дней назад: Universal Image Downloader . Вот ссылка на тему, о которой я говорю.

Эта библиотека использует кэширование на диске, но абстрагирует все сложности для вас (надеюсь, я еще не пробовал, но кажется многообещающим).