用户通常会花费大量时间和精力来创建身份、添加数据以及自定义您的应用中的设置和偏好。当用户升级到新设备或重新安装您的应用时,保留这些数据和个性化设置是确保出色用户体验的重要部分。本页介绍了要备份的数据以及可用的备份选项。
选择要备份的数据
用户在使用您的应用时会生成大量数据。请务必备份适当的数据,只备份部分数据可能会让用户感到沮丧,因为当他们在新设备上打开应用时,会发现某些内容丢失了。对于用户而言,要备份的重要数据是其身份数据、用户生成应用数据和设置数据,如下所述。
身份数据
您可以通过在用户在新设备上开始使用时转移用户的帐户来帮助维持现有的用户参与度。
有关转移身份验证凭据和授权令牌的详细信息,请参阅 Block Store。
要探索 Google 登录解决方案以促进用户登录您的应用,请参阅 Google 身份。
应用数据
应用数据可以包括用户生成的内容,例如文本、图像和其他媒体。您可以在 Android 设备之间同步应用数据并保存您希望在应用正常生命周期中使用的数据。您还可以将返回用户的应用数据还原到新设备。要了解如何操作,请参阅 使用同步适配器传输数据。
设置数据
确保您还备份和还原设置数据,以便在新设备上保留返回用户的个性化偏好。即使用户没有登录您的应用,您也可以还原设置数据。您可以备份用户在应用的 UI 中显式设置的设置,以及透明数据,例如指示用户是否已查看设置向导的标志。
为了尽可能多地保留现有用户在新设备上的体验,请确保您备份以下用户设置
用户修改的任何设置,例如使用 Jetpack Preference 库 时。
用户是否已打开或关闭通知和铃声。
指示用户是否已查看欢迎屏幕或介绍性工具提示的布尔标志。
避免备份 URI,因为它们可能不稳定。在某些情况下,将数据还原到新的移动设备会导致无效 URI,该 URI 指向无效文件。这方面的一个示例是使用 URI 保存用户的铃声偏好。当用户重新安装应用时,URI 可能会指向没有铃声,或者指向与预期不同的铃声。不要备份 URI,而应备份有关该设置的一些元数据,例如铃声标题或铃声的哈希值。
备份选项
Android 提供两种方法供应用将其数据备份到云端:应用的自动备份 和 键值备份。自动备份适用于 Android 6.0 及更高版本,通过将数据上传到用户的 Google 云端硬盘帐户来保留数据。自动备份 包含文件,这些文件位于系统为您的应用分配的大多数目录中。自动备份每个应用最多可以存储 25 MB 的基于文件的应用数据。键值备份功能(以前称为备份 API 和 Android 备份服务)通过将其上传到 Android 备份服务来保留设置数据(以键值对的形式)。
通常,我们建议使用自动备份,因为它默认情况下处于启用状态,并且不需要任何实现工作。面向 Android 6.0 或更高版本的应用会自动启用自动备份。自动备份功能是一种基于文件的应用数据备份方法。虽然自动备份易于实现,但如果您对备份数据有更具体的需要,请考虑使用键值备份功能。
下表描述了键值备份和自动备份之间的一些关键区别。
类别 | 键值备份(Android 备份服务) | Android 自动备份 |
---|---|---|
支持的版本 | Android 2.2(API 级别 8)及更高版本。 | Android 6.0(API 级别 23)及更高版本。 |
参与 | 默认情况下禁用。应用可以通过 声明备份代理 来选择加入。 | 默认情况下启用。应用可以通过 禁用备份 来选择退出。 |
实现 | 应用必须实现一个 BackupAgent 。备份代理定义了要备份的数据以及如何恢复数据。 |
默认情况下,自动备份包含几乎所有应用的文件。您可以使用 XML 包含和排除文件。在内部,自动备份依赖于捆绑在 SDK 中的备份代理。 |
频率 | 当有准备备份的数据时,应用必须发出请求。来自多个应用的请求会进行批处理,并在每隔几小时执行一次。 | 备份自动进行,大约每天一次。 |
传输 | 备份数据可以使用 Wi-Fi 或蜂窝数据进行传输。 | 备份数据默认情况下使用 Wi-Fi 传输,但设备用户可以打开移动数据备份。如果设备从未连接到 Wi-Fi 网络或用户未更改其移动数据备份设置,则自动备份永远不会发生。 |
传输条件 |
定义备份所需的设备条件,在 onBackup() 中。 |
如果使用默认备份代理,则在 XML 文件中 定义备份所需的设备条件。 |
应用关闭 | 应用在备份期间不会关闭。 | 系统会在备份期间关闭应用。 |
备份存储 | 备份数据存储在 Android 备份服务中,每个应用限于 5 MB。Google 根据 Google 的 隐私政策 将此数据视为个人信息。 | 备份数据存储在用户的 Google Drive 中,每个应用限于 25 MB。Google 根据 Google 的 隐私政策 将此数据视为个人信息。 |
用户登录 | 不需要用户登录到您的应用。用户必须使用 Google 帐户登录到设备。 | 不需要用户登录到您的应用。用户必须使用 Google 帐户登录到设备。 |
API | 相关的 API 方法是基于实体的 | 相关的 API 方法是基于文件的 |
数据恢复 | 安装应用时恢复数据。如果需要,您可以请求手动恢复。 | 安装应用时恢复数据。如果有多个数据集可用,用户可以选择一个备份数据集列表。 |
文档 | 使用 Android 备份服务备份键值对 | 使用自动备份备份用户数据 |
有关每种服务的备份和恢复工作方式的更多信息,请参阅 测试备份和恢复。