Обновление приложения Android без потери данных

Я новичок в разработке для Android, поэтому пытаюсь сделать приложение, в котором хранится информация о складе. Однако я боюсь, что если я выполню обновление, пользовательские данные будут потеряны. Должен ли я управлять тем, какие данные должны оставаться неизменными при обновлении?

Кроме того, я хотел бы знать, будет ли иметь какое-либо значение использование сериализуемого класса или использование базы данных SQL, если я хочу сохранить данные в безопасности.

Большое спасибо :)


person kickingnico    schedule 04.07.2015    source источник
comment
Вы можете сжимать данные и загружать их в облако, а затем синхронизировать и заново создавать данные.   -  person Prokash Sarkar    schedule 04.07.2015


Ответы (3)


Когда вы обновите приложение, SharedPreferences и SQLite не потеряют данные. Таким образом, вы можете хранить данные там. Или вы можете хранить данные во внешнем хранилище или на удаленном сервере.

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

person PageNotFound    schedule 05.07.2015

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

2) Данные SQLite безопасны при обновлении, включая обновление системы Android. Однако Serializable — нет. Никогда не используйте Serializable для надежного сохранения данных в долгосрочной перспективе. Используйте что-то вроде буферов JSON, XML или протоколов для сериализации ваших объектов.

person BladeCoder    schedule 05.07.2015

Если место на сервере не подходит, я бы предложил использовать SharedPreferences. Пока имя вашего пакета не изменится, все ваши данные будут сохраняться после обновления.

person Zack Matthews    schedule 05.07.2015