Android NDK开发详解用户数据和身份之数据备份概览
用户通常会投入大量时间和精力在您的应用中创建身份、添加数据以及自定义设置和偏好设置。在用户升级到新设备或重新安装您的应用时,为他们保留这些数据和个性化设置是确保出色用户体验的重要一步。本页将介绍您应备份哪些数据以及可用的备份选项。
选择要备份的数据
设备上的身份和帐号数据、设置数据以及应用数据。
图 1. 确保为回访用户恢复身份信息、应用数据和设置数据。
用户使用您的应用时会生成大量的数据。请谨慎地备份相应数据 - 如果您仅备份其中的部分数据,用户在新设备上打开应用时会发现数据不齐全,并会因此感到沮丧。应为用户备份的重要数据包括身份数据、用户生成的应用数据以及设置数据,如下所述。
身份数据
当用户开始使用新设备时,您可以通过传输他们的帐号来维持现有的用户互动度。
如需详细了解如何传输身份验证凭据和授权令牌,请参阅 Block Store。
如需了解方便用户登录您应用的 Google 登录解决方案,请参阅 Google Identity。
应用数据
应用数据可以包含用户生成的内容,例如文字、图片和其他媒体。您可在搭载 Android 的设备之间同步应用数据,并可保存要在常规应用生命周期中使用的数据。您还可将回访用户的数据恢复到新设备上。如需了解具体操作方法,请参阅使用同步适配器传输数据。
设置数据
务必备份并恢复设置数据,以在新设备上保留回访用户的个性化偏好设置。即使用户没有登录您的应用,您也可以恢复设置数据。您可以备份用户在应用界面中明确设置的设置以及透明数据(例如,表明用户是否已看到设置向导的标志)。
注意:在搭载 Android 7.0(API 级别 24)或更高版本的设备上,系统会自动备份和恢复用户向您的应用授予的所有权限。不过,如果用户卸载了您的应用,然后系统清除了授予的所有权限,则用户必须重新授予这些权限。
为了在新设备上尽可能保留现有用户的体验,请务必备份以下用户设置:
用户修改的任何设置,例如使用 Jetpack Preference 库时。
用户是开启了还是关闭了通知和铃声。
表明用户是否已看到欢迎屏幕或介绍性提示的布尔值标志。
将设置从一部移动设备传输到另一部移动设备。
图 2. 在新设备上恢复设置有助于确保出色的用户体验。
避免备份 URI,因为它们可能不稳定。在某些情况下,在新的移动设备上恢复数据可能会导致产生没有指向有效文件的无效 URI。例如,使用 URI 保存用户的铃声偏好设置。当用户重新安装应用时,该 URI 可能不指向任何铃声或者指向与预期不同的铃声。您可以备份一些有关该设置的元数据(例如,铃声标题或铃声的哈希值),而不是备份该 URI。
备份选项
Android 为应用提供了两种将数据备份到云端的方式:应用自动备份和键值对备份。自动备份功能在 Android 6.0 及更高版本上提供,它可以通过将数据上传到用户的 Google 云端硬盘帐号来保留这些数据。自动备份功能会备份系统分配给应用的大多数目录中的文件。自动备份功能可为每个应用存储最多 25 MB 的文件数据。键值对备份功能(以前称为 Backup API 和 Android Backup Service)通过将设置数据上传到 Android Backup Service,以键值对的形式保留这些数据。
通常,我们推荐使用自动备份功能,因为该功能默认启用,且无需任何操作就可实现。以 Android 6.0 或更高版本为目标平台的应用会自动启用自动备份功能。自动备份功能是一种基于文件的应用数据备份方法。尽管自动备份易于实现,但如果您有更具体的数据备份需求,则可以考虑使用键值对备份功能。
注意:如果您的应用没有针对应用内容的备份机制,并且应用内容的大小不太可能超过 25 MB 的限制,则自动备份可能足以满足您的需求。
下表说明了键值对备份和自动备份之间的一些主要区别:
如需详细了解每项服务的备份和恢复工作原理,请参阅测试备份和恢复。
注意:如果 Wi-Fi 不可用,则键值对备份可能会使用移动数据。因此,键值对备份通常不适用于应用数据内容(例如媒体、下载的文件和缓存),除非数据量非常小。
本页面上的内容和代码示例受内容许可部分所述许可的限制。Java 和 OpenJDK 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2023-04-28。