数据备份概览

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

选择要备份的数据

设备上的身份和账号数据、设置数据以及应用数据。

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

用户使用您的应用时会生成大量的数据。请谨慎地备份相应数据 - 如果您仅备份其中的部分数据,用户在新设备上打开应用时会发现数据不齐全,并会因此感到沮丧。应为用户备份的重要数据包括身份数据、用户生成的应用数据以及设置数据,如下所述。

身份数据

当用户开始使用新设备时,您可以通过传输他们的账号来维持现有的用户互动度。

  • 如需详细了解如何传输身份验证凭据和授权令牌,请参阅 Block Store

  • 如需了解方便用户登录您应用的 Google 登录解决方案,请参阅 Google Identity

应用数据

应用数据可以包含用户生成的内容,例如文字、图片和其他媒体。您可在搭载 Android 的设备之间同步应用数据,并可保存要在常规应用生命周期中使用的数据。您还可将回访用户的数据恢复到新设备上。如需了解具体操作方法,请参阅使用同步适配器传输数据

设置数据

务必备份并恢复设置数据,以在新设备上保留回访用户的个性化偏好设置。即使用户没有登录您的应用,您也可以恢复设置数据。您可以备份用户在应用界面中明确设置的设置以及透明数据(例如,表明用户是否已看到设置向导的标志)。

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

  • 用户修改的任何设置,例如使用 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 或更高版本为目标平台的应用会自动启用自动备份功能。自动备份功能是一种基于文件的应用数据备份方法。尽管自动备份易于实现,但如果您有更具体的数据备份需求,则可以考虑使用键值对备份功能。

下表说明了键值对备份和自动备份之间的一些主要区别:

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

如需详细了解每项服务的备份和恢复工作原理,请参阅测试备份和恢复