Пользователи часто тратят значительное время и усилия на создание своей учетной записи, добавление данных и настройку параметров и предпочтений в вашем приложении. Сохранение этих данных и персонализации для пользователей при обновлении устройства или переустановке приложения является важной частью обеспечения отличного пользовательского опыта. На этой странице описано, какие данные следует резервировать, и доступные вам варианты резервного копирования.
Выберите, какие данные следует резервировать.

Рисунок 1. Убедитесь, что вы восстановили идентификационные данные, данные приложения и данные настроек для пользователей, возвращающихся в ваше приложение.
Пользователи генерируют много данных при использовании ваших приложений. Поэтому обязательно создавайте резервные копии только необходимых данных — резервное копирование лишь части данных может вызвать недовольство пользователей, когда они откроют приложение на новом устройстве и обнаружат, что чего-то не хватает. К важным данным, которые необходимо резервировать для ваших пользователей, относятся их идентификационные данные, данные, созданные пользователями в приложении, и данные настроек, как описано в следующих разделах.
Данные об идентификации
Вы можете помочь сохранить вовлеченность существующих пользователей, перенеся их учетную запись при переходе на новое устройство.
Подробную информацию о передаче учетных данных аутентификации и токенов авторизации см. в разделе «Хранилище блоков» .
Чтобы ознакомиться с решениями Google для авторизации пользователей в вашем приложении, посетите раздел Google Identity .
Данные приложения
Данные приложения могут включать контент, созданный пользователем, такой как текст, изображения и другие медиафайлы. Вы можете синхронизировать данные приложения между устройствами на базе Android и сохранять данные, которые хотите использовать в течение обычного жизненного цикла приложения. Вы также можете восстановить данные пользователя, который уже пользовался приложением, на новом устройстве. Чтобы узнать, как это сделать, см. раздел «Передача данных с помощью адаптеров синхронизации» .
Данные настроек
Обязательно создавайте резервные копии и восстанавливайте данные настроек, чтобы сохранить персональные предпочтения пользователя на новом устройстве. Вы можете восстановить данные настроек, даже если пользователь не вошел в ваше приложение. Вы можете создавать резервные копии настроек, которые пользователь явно устанавливает в пользовательском интерфейсе вашего приложения, а также прозрачных данных, таких как флажок, указывающий, просмотрел ли пользователь мастер настройки.
Чтобы максимально сохранить пользовательский опыт на новом устройстве, обязательно создайте резервную копию следующих пользовательских настроек:
Любые настройки, измененные пользователем, например, при использовании библиотеки настроек Jetpack.
Включены или выключены уведомления и мелодии звонка пользователем.
Логические флаги, указывающие, просматривал ли пользователь приветственные экраны или вводные всплывающие подсказки.

Рисунок 2. Восстановление настроек на новых устройствах помогает обеспечить удобство использования.
Избегайте резервного копирования URI, поскольку они могут быть нестабильными. В некоторых случаях восстановление на новом мобильном устройстве может привести к недействительному URI, который не указывает на действительный файл. Например, это может быть использование URI для сохранения настроек мелодии звонка. Когда пользователь переустанавливает приложение, URI может указывать на отсутствие мелодии звонка или на другую мелодию, отличную от той, которая была задумана. Вместо резервного копирования URI можно сохранить некоторые метаданные о настройке, такие как название мелодии звонка или хеш мелодии.
Резервные параметры
Android предоставляет приложениям следующие способы резервного копирования данных в облако:
- Автоматическое резервное копирование приложений
- Резервное копирование ключ-значение
- API для создания больших резервных копий (по согласованию с разработчиками крупных приложений)
Функция автоматического резервного копирования, доступная в Android версии 6.0 и выше, сохраняет данные, загружая их в учетную запись Google Drive пользователя. Автоматическое резервное копирование включает файлы из большинства каталогов, назначенных системе вашему приложению. Автоматическое резервное копирование может хранить до 25 МБ файловых данных на одно приложение. Функция резервного копирования «ключ-значение» (ранее известная как Backup API и Android Backup Service) сохраняет данные настроек в виде пар «ключ-значение», загружая их в службу резервного копирования 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 МБ на приложение. Google рассматривает эти данные как персональную информацию в соответствии с политикой конфиденциальности Google. | Резервные копии данных хранятся в личном кабинете пользователя в Google Диске, размер которых ограничен 25 МБ на приложение. Google рассматривает эти данные как персональную информацию в соответствии с Политикой конфиденциальности Google. |
| Вход пользователя | Для этого не требуется, чтобы пользователь был авторизован в вашем приложении. Пользователь должен быть авторизован на устройстве с помощью учетной записи Google. | Для этого не требуется, чтобы пользователь был авторизован в вашем приложении. Пользователь должен быть авторизован на устройстве с помощью учетной записи Google. |
| API | Соответствующие методы API основаны на сущностях: | Соответствующие методы API основаны на файлах: |
| Восстановление данных | Данные восстанавливаются при установке приложения. При необходимости вы можете запросить восстановление вручную. | Данные восстанавливаются при установке приложения. Пользователи могут выбрать один из нескольких наборов резервных копий, если доступно несколько наборов данных. |
| Документация | Создавайте резервные копии пар ключ-значение с помощью службы резервного копирования Android. | Создавайте резервные копии пользовательских данных с помощью функции автоматического резервного копирования. |
Для получения более подробной информации о том, как работают резервное копирование и восстановление для каждой службы, см. раздел «Проверка резервного копирования и восстановления» .