Пользователи часто тратят значительное время и усилия на создание личности, добавление данных и настройку параметров и предпочтений в вашем приложении. Сохранение этих данных и персонализация для пользователей, когда они переходят на новое устройство или переустанавливают ваше приложение, являются важной частью обеспечения комфортного пользовательского опыта. На этой странице описано, какие данные необходимо резервировать, а также доступные вам варианты резервного копирования.
Выберите данные для резервного копирования
Пользователи генерируют много данных при использовании ваших приложений. Позаботьтесь о резервном копировании соответствующих данных — резервное копирование только некоторых данных может расстроить пользователей, когда они откроют приложение на новом устройстве и обнаружат, что чего-то не хватает. Важными данными для резервного копирования ваших пользователей являются их идентификационные данные, данные пользовательских приложений и данные настроек, как описано ниже.
Идентификационные данные
Вы можете помочь сохранить существующее взаимодействие с пользователем, перенеся его учетную запись, когда он начинает работать с новым устройством.
Подробную информацию о передаче учетных данных аутентификации и токенов авторизации см. в разделе Block Store .
Чтобы изучить решения для входа в систему Google, облегчающие вход пользователей в ваше приложение, см. раздел Google Identity .
Данные приложения
Данные приложения могут включать пользовательский контент, например текст, изображения и другие медиафайлы. Вы можете синхронизировать данные приложения между устройствами под управлением Android и сохранять данные, которые хотите использовать в течение обычного жизненного цикла приложения. Вы также можете восстановить данные вернувшегося пользователя на новое устройство. Подробную информацию см. в разделе Передача данных с помощью адаптеров синхронизации .
Данные настроек
Обязательно создайте резервную копию и восстановите данные настроек, чтобы сохранить персональные настройки вернувшегося пользователя на новом устройстве. Вы можете восстановить данные настроек, даже если пользователь не авторизуется в вашем приложении. Вы можете создать резервную копию настроек, которые пользователь явно задает в пользовательском интерфейсе вашего приложения, а также прозрачных данных, таких как флаг, указывающий, видел ли пользователь мастер настройки.
Чтобы сохранить как можно больше возможностей существующего пользователя на новом устройстве, обязательно сделайте резервную копию следующих пользовательских настроек:
Любые настройки, измененные пользователем, например при использовании библиотеки настроек Jetpack.
Включил ли пользователь уведомления и мелодии звонка.
Логические флаги, указывающие, видел ли пользователь экраны приветствия или вводные подсказки.
Избегайте резервного копирования URI, поскольку они могут быть нестабильными. В некоторых случаях восстановление на новое мобильное устройство может привести к появлению недопустимого URI, который не указывает на действительный файл. Одним из примеров этого является использование URI для сохранения предпочтений пользователя в отношении мелодии звонка. Когда пользователь переустанавливает приложение, URI может указывать на отсутствие мелодии звонка или на другую мелодию звонка, отличную от запланированной. Вместо резервного копирования URI вы можете создать резервную копию некоторых метаданных о настройке, например названия мелодии звонка или хэша мелодии звонка.
Параметры резервного копирования
Android предоставляет приложениям два способа резервного копирования своих данных в облако: автоматическое резервное копирование для приложений и резервное копирование «ключ-значение» . Функция автоматического резервного копирования, доступная в Android версии 6.0 и выше, сохраняет данные, загружая их в учетную запись пользователя на Google Диске. Автоматическое резервное копирование включает файлы в большинстве каталогов, назначенных системе вашему приложению. Auto Backup может хранить до 25 МБ файловых данных для каждого приложения. Функция резервного копирования «ключ-значение» (ранее известная как Backup API и служба резервного копирования Android) сохраняет данные настроек в виде пар «ключ-значение», загружая их в службу резервного копирования Android.
Как правило, мы рекомендуем автоматическое резервное копирование, поскольку оно включено по умолчанию и не требует никаких дополнительных действий для внедрения. Приложения, предназначенные для Android версии 6.0 или выше, автоматически включают автоматическое резервное копирование. Функция автоматического резервного копирования представляет собой файловый подход к резервному копированию данных приложений. Хотя автоматическое резервное копирование легко реализовать, рассмотрите возможность использования функции резервного копирования «ключ-значение», если у вас есть более конкретные потребности в резервном копировании данных.
В следующей таблице описаны некоторые ключевые различия между резервным копированием «ключ-значение» и автоматическим резервным копированием.
Категория | Резервное копирование «ключ-значение» (служба резервного копирования Android) | Автоматическое резервное копирование Android |
---|---|---|
Поддерживаемые версии | Android 2.2 (уровень API 8) и выше. | Android 6.0 (уровень API 23) и выше. |
Участие | По умолчанию отключено. Приложения могут согласиться, объявив агент резервного копирования . | Включено по умолчанию. Приложения могут отказаться, отключив резервное копирование . |
Выполнение | Приложения должны реализовать BackupAgent . Агент резервного копирования определяет, какие данные подлежат резервному копированию и как восстановить данные. | По умолчанию автоматическое резервное копирование включает почти все файлы приложения. Вы можете использовать XML для включения и исключения файлов . Внутри Auto Backup используется агент резервного копирования, включенный в SDK. |
Частота | Приложения должны выдавать запрос, когда есть данные, готовые к резервному копированию. Запросы от нескольких приложений группируются и выполняются каждые несколько часов. | Резервное копирование происходит автоматически, примерно раз в день. |
Передача инфекции | Резервные данные можно передавать с помощью Wi-Fi или сотовой связи. | По умолчанию данные резервного копирования передаются через Wi-Fi, но пользователь устройства может включить резервное копирование мобильных данных. Если устройство никогда не подключается к сети Wi-Fi или пользователь не меняет настройки резервного копирования мобильных данных, автоматическое резервное копирование не происходит. |
Условия передачи | Определите условия устройства, необходимые для резервного копирования, в onBackup() . | Определите условия устройства, необходимые для резервного копирования, в файле XML, если используется агент резервного копирования по умолчанию. |
Приложение закрыто | Приложения не закрываются во время резервного копирования. | Система закрывает приложение во время резервного копирования. |
Резервное хранилище | Данные резервной копии хранятся в службе резервного копирования Android и ограничены 5 МБ на каждое приложение. Google рассматривает эти данные как личную информацию в соответствии с Политикой конфиденциальности Google. | Данные резервной копии хранятся на Google Диске пользователя, объем каждого приложения ограничен 25 МБ. Google рассматривает эти данные как личную информацию в соответствии с Политикой конфиденциальности Google. |
Вход пользователя | Не требует входа пользователя в ваше приложение. Пользователь должен войти в устройство с помощью учетной записи Google. | Не требует от пользователя входа в ваше приложение. Пользователь должен войти в устройство с помощью учетной записи Google. |
API | Связанные методы API основаны на сущностях: | Связанные методы API основаны на файлах: |
Восстановление данных | Данные восстанавливаются при установке приложения. При необходимости вы можете запросить восстановление вручную. | Данные восстанавливаются при установке приложения. Пользователи могут выбирать из списка резервных наборов данных, если доступно несколько наборов данных. |
Документация | Резервное копирование пар ключ-значение с помощью службы резервного копирования Android. | Резервное копирование пользовательских данных с помощью Auto Backup |
Дополнительные сведения о том, как работает резервное копирование и восстановление для каждой службы, см. в разделе Тестирование резервного копирования и восстановления .