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

图 1. 确保为返回应用的用户恢复身份数据、应用数据和设置数据。
用户在使用您的应用时会生成大量数据。请注意备份适当的数据——只备份部分数据可能会让用户在新设备上打开应用时感到沮丧,因为他们会发现有东西缺失。为您的用户备份的重要数据包括他们的身份数据、用户生成的应用数据以及设置数据,如下所述。
身份数据
当用户开始使用新设备时,您可以通过转移用户账号来帮助保持现有用户互动。
有关传输身份验证凭据和授权令牌的详细信息,请参阅 Block Store。
要探索有助于用户登录您的应用的 Google 登录解决方案,请参阅 Google Identity。
应用数据
应用数据可以包括用户生成的内容,例如文本、图像和其他媒体。您可以在 Android 设备之间同步应用数据,并保存希望在正常应用生命周期内使用的数据。您还可以将返回用户的 数据恢复到新设备上。要了解如何操作,请参阅 使用同步适配器传输数据。
设置数据
确保您也备份和恢复设置数据,以保留返回用户在新设备上的个性化偏好。即使用户没有登录您的应用,您也可以恢复设置数据。您可以备份用户在应用 UI 中明确设置的设置,以及透明数据,例如指示用户是否已看过设置向导的标志。
为了尽可能保留现有用户在新设备上的体验,请确保备份以下用户设置
用户修改的任何设置,例如使用 Jetpack Preference 库时的设置。
用户是否开启或关闭了通知和铃声。
布尔标志,指示用户是否已看过欢迎屏幕或介绍性工具提示。
图 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 备份键值对 | 使用应用自动备份用户数据 |
有关每种服务的备份和恢复工作原理的更多信息,请参阅测试备份和恢复。