当我在 google Play 商店更新时,如何确保用户保留他们的 SQLite 数据?
How do I ensure users keep their SQLite data when I update on the google play store?
我想将我的目标和编译版本从 26 提高到 28。这是因为一位用户给我发电子邮件说该应用程序无法在他运行 andoird 9 的 phone 上正常运行。
提升目标和编译版本后,我在各种设备上测试了该应用程序,似乎一切都运行在不同的设备和模拟器上都很好。
但是我担心使用新的 SDK 目标和编译版本,用户在更新时可能会丢失数据。我的 DatabaseHelper class 扩展了 SQLiteOpenHelper。
当我使用更高的目标和编译版本更新时,我是否需要做任何事情来确保它们的数据库表得到保留?
注意:我的数据库架构与更新完全相同。
如果您使用 Room 来处理数据库操作,迁移非常容易
Follow this office android developer guide
如果您不使用 Room,那么迁移起来并不容易(如果您更新数据库很多)please read this medium blog
已编辑:正如您提到的,您没有对数据库进行任何更改
100%验证不会丢失数据可以按照以下步骤进行测试
1) 从 Playstore 下载您的应用程序。
2) 在 gradle 中更改代码并更新您的应用程序版本。
3) 进行签名构建(使用与 Playstore apk 中使用的密钥库相同的密钥库),以便您拥有更新版本的构建。
4) 将此更新版本的 apk 放入 phone 和 install/update(确保那里有旧版本的应用程序,您可以从 playstore 下载)。
5)现在您的应用已更新,您可以check/test随心所欲。
更改目标SDK版本不会丢失现有用户的数据,如果他们更新现有的应用程序(使用较低的sdk)。
您可以通过从 Play 商店安装 previous build
(具有较低的 sdk)并在 alpha release
(具有更新的目标 sdk)中上传您的新版本并将您自己添加为测试员。当 alpha 版本上线时,您可以选择在 previous app
(使用低目标 sdk)上更新应用程序。
当您点击更新按钮时,您将获得结果。
这样你可以验证一下。
如果您希望即使应用被删除并再次安装也能保存您的应用数据,您可以使用自 android 6.0
起可用的备份功能
将这些行添加到 <application>
标记内的清单中:
android:allowBackup="true"
android:fullBackupContent="true"
最终结果应该是这样的:
<application
android:name="your.app.bundle"
android:allowBackup="true"
android:fullBackupContent="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<activity />
<activity />
</application>
我想将我的目标和编译版本从 26 提高到 28。这是因为一位用户给我发电子邮件说该应用程序无法在他运行 andoird 9 的 phone 上正常运行。
提升目标和编译版本后,我在各种设备上测试了该应用程序,似乎一切都运行在不同的设备和模拟器上都很好。
但是我担心使用新的 SDK 目标和编译版本,用户在更新时可能会丢失数据。我的 DatabaseHelper class 扩展了 SQLiteOpenHelper。
当我使用更高的目标和编译版本更新时,我是否需要做任何事情来确保它们的数据库表得到保留?
注意:我的数据库架构与更新完全相同。
如果您使用 Room 来处理数据库操作,迁移非常容易
Follow this office android developer guide
如果您不使用 Room,那么迁移起来并不容易(如果您更新数据库很多)please read this medium blog
已编辑:正如您提到的,您没有对数据库进行任何更改
100%验证不会丢失数据可以按照以下步骤进行测试
1) 从 Playstore 下载您的应用程序。
2) 在 gradle 中更改代码并更新您的应用程序版本。
3) 进行签名构建(使用与 Playstore apk 中使用的密钥库相同的密钥库),以便您拥有更新版本的构建。
4) 将此更新版本的 apk 放入 phone 和 install/update(确保那里有旧版本的应用程序,您可以从 playstore 下载)。
5)现在您的应用已更新,您可以check/test随心所欲。
更改目标SDK版本不会丢失现有用户的数据,如果他们更新现有的应用程序(使用较低的sdk)。
您可以通过从 Play 商店安装 previous build
(具有较低的 sdk)并在 alpha release
(具有更新的目标 sdk)中上传您的新版本并将您自己添加为测试员。当 alpha 版本上线时,您可以选择在 previous app
(使用低目标 sdk)上更新应用程序。
当您点击更新按钮时,您将获得结果。
这样你可以验证一下。
如果您希望即使应用被删除并再次安装也能保存您的应用数据,您可以使用自 android 6.0
起可用的备份功能将这些行添加到 <application>
标记内的清单中:
android:allowBackup="true"
android:fullBackupContent="true"
最终结果应该是这样的:
<application
android:name="your.app.bundle"
android:allowBackup="true"
android:fullBackupContent="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<activity />
<activity />
</application>