Android и место для хранения данных? - PullRequest
2 голосов
/ 10 октября 2009

Мне интересно, сколько хранилища данных доступно для моего приложения в Android?

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

Итак, сколько МБ может использовать мое приложение из SharedPreferences при хранении файлов?

Ответы [ 2 ]

4 голосов
/ 10 октября 2009

Если вы планируете хранить МБ данных, попробуйте использовать SD-карту, чтобы избежать заполнения часто ограниченного хранилища, встроенного в телефон, особенно на G1.

Если вы храните данные на телефоне, каждое приложение имеет свою собственную область хранения, которая также будет удалена при удалении приложения.

См. http://d.android.com/reference/android/content/Context.html#getDir(java.lang.String, int)

Для кэшированных файлов вы можете использовать File cacheDir = getCacheDir (); который возвращает путь к каталогу кэша приложения в файловой системе. Эти файлы будут удалены первыми, когда устройству не хватит места для хранения.

См. http://d.android.com/reference/android/content/Context.html#getCacheDir() для получения дополнительной информации

2 голосов
/ 10 октября 2009

Какую цель кэширования вы хотите реализовать?

Если вы хотите избежать загрузки файлов из Интернета несколько раз, SDCard или SQLiteDatabase должны быть хорошими вариантами, в зависимости от типа файлов, с которыми вы работаете. Если вы хотите сохранить файлы в памяти (например, вы хотите сохранить некоторые декодированные растровые изображения в куче), лучше всего реализовать собственный класс Cache.

SharedPreferences может использоваться только с некоторыми базовыми типами (boolean, int, String, long, float) - поэтому Parcelable нельзя вставить в настройки вашего приложения.

Это создаст проблему для сохранения файлов там.

...