数据备份概览

用户通常会投入大量时间和精力在您的应用中创建身份、添加数据以及自定义设置和偏好。当用户升级到新设备或重新安装您的应用时,保留这些数据和个性化设置是确保良好用户体验的重要部分。本页介绍要备份的数据以及可用的备份选项。

选择要备份的数据

Identity and account data, settings data, and app data on a device.

图 1. 确保为返回应用的用户恢复身份数据、应用数据和设置数据。

用户在使用您的应用时会生成大量数据。请注意备份适当的数据——只备份部分数据可能会让用户在新设备上打开应用时感到沮丧,因为他们会发现有东西缺失。为您的用户备份的重要数据包括他们的身份数据、用户生成的应用数据以及设置数据,如下所述。

身份数据

当用户开始使用新设备时,您可以通过转移用户账号来帮助保持现有用户互动。

  • 有关传输身份验证凭据和授权令牌的详细信息,请参阅 Block Store

  • 要探索有助于用户登录您的应用的 Google 登录解决方案,请参阅 Google Identity

应用数据

应用数据可以包括用户生成的内容,例如文本、图像和其他媒体。您可以在 Android 设备之间同步应用数据,并保存希望在正常应用生命周期内使用的数据。您还可以将返回用户的 数据恢复到新设备上。要了解如何操作,请参阅 使用同步适配器传输数据

设置数据

确保您也备份和恢复设置数据,以保留返回用户在新设备上的个性化偏好。即使用户没有登录您的应用,您也可以恢复设置数据。您可以备份用户在应用 UI 中明确设置的设置,以及透明数据,例如指示用户是否已看过设置向导的标志。

为了尽可能保留现有用户在新设备上的体验,请确保备份以下用户设置

  • 用户修改的任何设置,例如使用 Jetpack Preference 库时的设置。

  • 用户是否开启或关闭了通知和铃声。

  • 布尔标志,指示用户是否已看过欢迎屏幕或介绍性工具提示。

Transfer of settings from one mobile device to another.

图 2. 在新设备上恢复设置有助于确保良好的用户体验。

避免备份 URI,因为它们可能不稳定。在某些情况下,恢复到新的移动设备可能会导致无效的 URI,该 URI 不指向有效文件。一个例子是使用 URI 保存用户的铃声偏好。当用户重新安装应用时,URI 可能指向没有铃声或与预期不同的铃声。您可以改为备份关于设置的一些元数据,例如铃声标题或铃声的哈希值,而不是备份 URI。

备份选项

Android 为应用提供两种将数据备份到云端的方式:应用自动备份键值对备份。应用自动备份在 Android 6.0 及更高版本上可用,通过将数据上传到用户的 Google Drive 账号来保留数据。应用自动备份包括文件,这些文件位于系统分配给您应用的大多数目录中。应用自动备份每个应用最多可以存储 25MB 基于文件的数据。键值对备份功能(以前称为 Backup API 和 Android Backup Service)通过将设置数据以键值对的形式上传到 Android Backup Service 来保留设置数据。

通常,我们推荐应用自动备份,因为它默认启用,无需额外工作即可实现。以 Android 6.0 或更高版本为目标的应用会自动启用应用自动备份。应用自动备份功能是一种基于文件的方法来备份应用数据。虽然应用自动备份实现简单,但如果您对数据备份有更具体的需求,请考虑使用键值对备份功能。

下表描述了键值对备份和应用自动备份的一些主要区别

类别 键值对备份 (Android Backup Service) Android 应用自动备份
支持的版本 Android 2.2 (API 级别 8) 及更高版本。 Android 6.0 (API 级别 23) 及更高版本。
参与方式 默认禁用。应用可以通过声明备份代理选择启用。 默认启用。应用可以通过禁用备份选择停用。
实现 应用必须实现 BackupAgent。备份代理定义要备份的数据以及如何恢复数据。 默认情况下,应用自动备份包含应用的几乎所有文件。您可以使用 XML 来包含和排除文件。在内部,应用自动备份依赖于 SDK 中捆绑的备份代理。
频率 应用必须在有准备好备份的数据时发出请求。来自多个应用的请求会被批量处理并在每隔几小时执行一次。 备份自动进行,大约每天一次。
传输 备份数据可以使用 Wi-Fi 或蜂窝数据传输。 默认情况下,备份数据使用 Wi-Fi 传输,但设备用户可以开启移动数据备份。如果设备从未连接到 Wi-Fi 网络或用户未更改其移动数据备份设置,则应用自动备份永远不会发生。
传输条件 onBackup()定义备份所需的设备条件 如果使用默认备份代理,则在 XML 文件中定义备份所需的设备条件
应用关闭 备份期间应用不会关闭。 系统在备份期间会关闭应用。
备份存储 备份数据存储在 Android Backup Service 中,每个应用限额 5 MB。Google 根据 Google 的隐私权政策将这些数据视为个人信息。 备份数据存储在用户的 Google Drive 中,每个应用限额 25 MB。Google 根据 Google 的隐私权政策将这些数据视为个人信息。
用户登录 不需要用户登录您的应用。用户必须使用 Google 账号登录设备。 不需要用户登录您的应用。用户必须使用 Google 账号登录设备。
API 相关的 API 方法是基于实体的 相关的 API 方法是基于文件的
数据恢复 应用安装时数据会恢复。如果需要,您可以请求手动恢复。 应用安装时数据会恢复。如果存在多个备份数据集,用户可以从列表中选择。
文档 使用 Android Backup Service 备份键值对 使用应用自动备份用户数据

有关每种服务的备份和恢复工作原理的更多信息,请参阅测试备份和恢复