В чем разница между общими настройками и внутренним хранилищем в Android?Где хранятся данные? - PullRequest
0 голосов
/ 16 марта 2019

В чем разница между общими настройками и внутренним хранилищем в Android? Где хранятся данные? Похоже, система Android выделяет определенное количество места для каждого приложения. При использовании общих настроек моему приложению не хватило памяти и возникло исключение OutOfMemory. Если я использую внутреннее хранилище для сохранения этих данных в файлы, решит ли это проблему? Если внутреннее хранилище также использует такое же ограниченное выделенное пространство для приложения, то как решить эту проблему?

Ответы [ 3 ]

3 голосов
/ 16 марта 2019

SharedPreferences хранит данные в парах ключ-значение. Он хранит их в основном в оперативной памяти, но также сохраняет копию во внутреннем хранилище. Android предоставляет ОЗУ для хранения вашего кода, всей графики и любых временных данных, и это ограничено. Если вы храните много пар ключ-значение (и, возможно, значения длинные String s), вы действительно можете использовать всю оперативную память для своего приложения и в итоге получить OutOfMemoryException. Это указывает на то, что SharedPreference, вероятно, не является правильным методом для данных, которые вы пытаетесь сохранить.

Вместо этого внутреннее хранилище полностью основано на флэш-памяти. Приложения имеют меньше ограничений, и они могут хранить большие объемы данных, таких как изображения. Внутреннее хранилище похоже на каталог, поэтому вы создаете файлы, читаете / записываете их, удаляете их и т. Д., Поэтому оно отличается от пар ключ-значение.

1 голос
/ 16 марта 2019
  • SharedPreference : хранить личные примитивные данные в парах ключ-значение.(Для хранения небольших записей / данных)

  • Внутреннее хранилище : сохранение личных данных в памяти устройства.(Для хранения больших наборов данных)

С общими настройками вам не нужно обрабатывать файловый ввод-вывод.для внутреннего хранилища вам необходимо обработать File IO.

Если у вас большой объем данных, вам следует использовать Internal Storage.Также вам нужно избегать хранения ненужных данных.

Для получения дополнительной информации прочитайте https://developer.android.com/guide/topics/data/data-storage.html

0 голосов
/ 16 марта 2019

В чем разница между общими настройками и внутренним хранилищем в Android?

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

SharedPreferences - это один из способов хранения данных во внутренней памяти.

Похоже, что система Android выделяет определенное количество места для каждого приложения.

Нет, хотя они могут сделать это в будущем.

При использовании общих настроек моему приложению не хватило памяти и возникло исключение OutOfMemory

OutOfMemoryError относится к пространству кучи (ОЗУ), а не к хранилищу.

Если я использую внутреннее хранилище для сохранения этих данных в файлы, разрешит ли это проблему?

Возможно, хотя это будет во многом зависеть от того, что вы делаете.

...