数据备份概览

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

选择要备份的数据

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

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

用户在使用您的应用时会生成大量的数据,因此您应备份相应的数据。如果仅备份部分数据,那么用户在新设备上打开您的应用时会因为找不到某些内容而感到沮丧。要为用户备份的重要数据包括身份数据、用户生成的应用数据以及设置数据,如下所述。

身份数据

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

如需详细了解如何转移帐号(登录)凭据,请参阅块存储

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

应用数据

应用数据可以包含用户生成的内容,例如文字、图片和其他媒体。如需了解如何恢复应用数据,请参阅使用同步适配器转移数据Google Drive Android API。您可以使用任意一种方法在搭载 Android 的设备之间同步应用数据,并保存您希望在常规应用生命周期内使用的数据。您还可以使用任意一种方法在新设备上恢复回访用户的数据。

设置数据

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

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

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

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

  • 表明用户是否已看到欢迎屏幕或介绍性提示的布尔值标志。

将设置从一台移动设备转移到另一台移动设备。

图 2. 在新设备上恢复设置可确保出色的用户体验。

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

备份选项

Android 为应用提供了两种将数据备份到云端的方式:应用自动备份键值对备份。自动备份功能在 Android 6.0 及更高版本上提供,它可以通过将数据上传到用户的 Google 云端硬盘帐号来保留这些数据。自动备份功能会备份系统分配给应用的大多数目录中的文件。自动备份功能可为每个应用存储最多 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 的备份代理。
频率 当有数据准备好进行备份时,应用必须发出请求。系统会以每隔几小时一次的频率批量处理和执行多个应用的请求。 大约每天自动备份一次。
传输 备份数据可通过 WLAN 或移动数据网络传输。 备份数据默认通过 WLAN 传输,但设备用户可以启用移动数据备份。如果设备未曾连接到 WLAN 网络,或者用户未更改移动数据备份设置,则绝不会自动备份。
传输条件 onBackup()定义备份所需的设备条件 在 XML 文件中定义备份所需的设备条件(如果使用默认备份代理)。
应用关闭情况 备份期间不会关闭应用。 系统会在备份期间关闭应用。
备份存储空间 备份数据存储在 Android Backup Service 中,每个应用的备份数据上限为 5MB。Google 会根据 Google 的隐私权政策将这些数据视为个人信息。 备份数据存储在用户的 Google 云端硬盘中,每个应用的备份数据上限为 25MB。Google 会根据 Google 的隐私权政策将这些数据视为个人信息。
用户登录 无需用户登录应用。用户必须使用 Google 帐号登录设备。 无需用户登录应用。用户必须使用 Google 帐号登录设备。
API 相关的 API 方法基于实体: 相关的 API 方法基于文件:
数据恢复 数据会在应用安装后恢复。如果需要,您可以请求手动恢复。 数据会在应用安装后恢复。如果有多个数据集,用户可以从备份数据集列表中进行选择。
文档 使用 Android Backup Service 备份键值对 通过自动备份功能备份用户数据

如需详细了解如何针对每种服务进行备份和恢复,请参阅测试备份和恢复