Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android App Updating Without Losing Data

I'm new to Android development, so I'm trying to do an app that stores information about a warehouse. However, I'm afraid that if I perform an update, the user data will get lost. Do I have to manage which data should remain unchanged upon updating?

Also, I would like to know if it would make any difference to use a serializable class or to use an SQL database if I want to keep the data safe.

Thanks a lot :)

like image 200
kickingnico Avatar asked Jul 04 '15 20:07

kickingnico


3 Answers

When you update the app, SharedPreferences and SQLite will not lose data. So you can store data there. Or you can store data in external storage or in remote server.

According to section 2 in this article, the serialize class is not safe, if you want to keep the data safe, then you can refer this post for more information. There are some tools that can cipher your database, but it is preferred to cipher your data before inserting into the database.

like image 186
PageNotFound Avatar answered Oct 02 '22 02:10

PageNotFound


1) No data will be lost during an upgrade, only when you uninstall the app. But be very careful if you change the data format between versions, you'll have to implement some migration code.

2) SQLite data is safe across upgrades, including Android system upgrades. However, Serializable is not. Never use Serializable to persist data reliably in the long term. Use something like JSON, XML or protocol buffers to serialize your objects.

like image 35
BladeCoder Avatar answered Oct 02 '22 02:10

BladeCoder


If server space isn't an option I would suggest using SharedPreferences. So long as your package name doesn't change all of your data will persist beyond an update.

like image 29
Zack Matthews Avatar answered Oct 02 '22 00:10

Zack Matthews