用户通常会花费大量时间和精力在您的应用中创建身份、添加数据以及自定义设置和首选项。当他们升级到新设备或重新安装您的应用时,保留这些数据和个性化设置是确保出色用户体验的重要组成部分。此页面描述了要备份哪些数据以及可供您使用的备份选项。
选择要备份的数据
用户在使用您的应用时会生成大量数据。注意备份适当的数据 - 仅备份部分数据可能会在用户在新设备上打开应用并发现某些内容丢失时让他们感到沮丧。要为用户备份的重要数据是他们的身份数据、用户生成应用数据和设置数据,如下所述。
身份数据
您可以通过在用户开始使用新设备时传输用户的帐户来帮助维持现有的用户参与度。
有关传输身份验证凭据和授权令牌的详细信息,请参阅Block Store。
要探索 Google 登录解决方案以促进用户登录您的应用,请参阅Google Identity。
应用数据
应用数据可以包括用户生成的内容,例如文本、图像和其他媒体。您可以在 Android 设备之间同步应用数据,并保存您希望在应用正常生命周期中使用的相应数据。您还可以将返回用户的相应数据恢复到新设备上。要了解如何操作,请参阅使用同步适配器传输数据。
设置数据
确保您还备份并恢复设置数据,以便在新设备上保留返回用户的个性化首选项。即使用户未登录您的应用,您也可以恢复设置数据。您可以备份用户在应用的 UI 中明确设置的设置,以及透明数据,例如指示用户是否已查看设置向导的标志。
为了尽可能保留新设备上现有用户的体验,请确保备份以下用户设置
用户修改的任何设置,例如使用 Jetpack Preference 库 时。
用户是否已打开或关闭通知和铃声。
指示用户是否已查看欢迎屏幕或介绍性工具提示的布尔标志。
避免备份 URI,因为它们可能不稳定。在某些情况下,恢复到新的移动设备可能会导致无效的 URI,该 URI 指向的文件无效。例如,使用 URI 保存用户的铃声首选项。当用户重新安装应用时,URI 可能指向没有铃声或指向与预期不同的铃声。与其备份 URI,不如备份有关设置的一些元数据,例如铃声标题或铃声的哈希值。
备份选项
Android 提供两种方法供应用将其数据备份到云端:应用自动备份 和 键值备份。应用自动备份(适用于 Android 6.0 及更高版本)通过将数据上传到用户的 Google Drive 帐户来保留数据。应用自动备份包含文件,这些文件位于系统分配给应用的大多数目录中。应用自动备份每个应用最多可以存储 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 备份服务备份键值对 | 使用应用自动备份备份用户数据 |
有关每个服务的备份和恢复工作原理的更多信息,请参阅测试备份和恢复。