Android 应用更新不丢失数据
Android App Updating Without Losing Data
我是 Android 开发的新手,所以我正在尝试开发一个存储仓库信息的应用程序。但是,我担心如果执行更新,用户数据会丢失。我是否必须管理哪些数据在更新时应保持不变?
此外,我想知道如果我想保持数据安全,使用可序列化 class 或使用 SQL 数据库是否会有任何不同。
非常感谢:)
如果服务器 space 不是一个选项,我建议使用 SharedPreferences
。只要您的包名称没有更改,您的所有数据都将在更新后持续存在。
更新应用时,SharedPreferences
和SQLite
不会丢失数据。所以你可以在那里存储数据。或者您可以将数据存储在外部存储或远程服务器中。
根据 this article, the serialize class is not safe, if you want to keep the data safe, then you can refer this post 中的第 2 部分了解更多信息。有一些工具可以加密您的数据库,但最好在将数据插入数据库之前加密您的数据。
1) 升级过程中不会丢失任何数据,只有在您卸载应用程序时才会丢失。但是要非常小心,如果你改变版本之间的数据格式,你将不得不实现一些迁移代码。
2) SQLite 数据在升级过程中是安全的,包括 Android 系统升级。但是,Serializable 不是。永远不要使用 Serializable 来长期可靠地保存数据。使用 JSON、XML 或协议缓冲区之类的东西来序列化您的对象。
我是 Android 开发的新手,所以我正在尝试开发一个存储仓库信息的应用程序。但是,我担心如果执行更新,用户数据会丢失。我是否必须管理哪些数据在更新时应保持不变?
此外,我想知道如果我想保持数据安全,使用可序列化 class 或使用 SQL 数据库是否会有任何不同。
非常感谢:)
如果服务器 space 不是一个选项,我建议使用 SharedPreferences
。只要您的包名称没有更改,您的所有数据都将在更新后持续存在。
更新应用时,SharedPreferences
和SQLite
不会丢失数据。所以你可以在那里存储数据。或者您可以将数据存储在外部存储或远程服务器中。
根据 this article, the serialize class is not safe, if you want to keep the data safe, then you can refer this post 中的第 2 部分了解更多信息。有一些工具可以加密您的数据库,但最好在将数据插入数据库之前加密您的数据。
1) 升级过程中不会丢失任何数据,只有在您卸载应用程序时才会丢失。但是要非常小心,如果你改变版本之间的数据格式,你将不得不实现一些迁移代码。
2) SQLite 数据在升级过程中是安全的,包括 Android 系统升级。但是,Serializable 不是。永远不要使用 Serializable 来长期可靠地保存数据。使用 JSON、XML 或协议缓冲区之类的东西来序列化您的对象。