2010-11-02 4 views
4

Я разрабатываю небольшое приложение для Android-приложений. Связанным с записями в базе данных является количество изображений (разрешение изображения, вероятно, такое же, как на экране на устройстве), может быть до 20 изображений на запись. Где будет лучшее место для хранения изображений. Я думаю либо в самой базе данных, либо на SD-карте. Я довольно новичок в Android и пока не совсем уверен, что я делаю.сохранение изображений на android

ответ

4

Хотя можно поместить изображение в базу данных (как blob), насколько я понимаю, это не лучшая практика.

Насколько велики изображения, о которых вы говорите? Вы сказали о разрешении экрана, но с компрессией они могут быть достаточно маленькими.

Если они довольно малы, рассмотрите возможность использования внутреннего кеша телефона (найденного с использованием getCacheDir() из контекста). Это также дает дополнительный бонус, позволяющий пользователю удалять кеш из меню приложения, а ваши изображения будут закрыты для вашего приложения. Документация на Android предлагает примерно 1 Мб кеша для внутреннего кеша.

Если они слишком велики для хранения во внутреннем кеше, SD-карта может быть вашим единственным вариантом. Недостатком этого является то, что изображения будут видны другим приложениям, их можно удалить, удалить, переименовать и т. Д. Вы не можете гарантировать, что они будут такими, какими они были, когда вы их покинули.

3

В моем приложении я был вынужден хранить изображения в SQLite как blobs. Размер Blob в SQLite ограничен теоретически на 2 концерта - но ручной размер recommends to use only few megs. Так что я занимаюсь хранением изображений. С точки зрения производительности - все в порядке

В любом случае, я уверен, что хранение изображений в БД более привлекательно, чем другие экзотические способы. Например. никто не может прогнозировать емкость SD-карты или даже ее присутствие на борту.

Смежные вопросы