Разработка
Разработка
Выберите платформу

Резервное копирование в облако

Резервное копирование в облако — это система для резервного копирования данных приложений на устройстве. Она включает в себя сохранение прогресса и настроек участвующих приложений в облаке, чтобы пользователи могли продолжать с того места, на котором остановились. Это упрощает использование приложений на новых гарнитурах, переустановку приложений и сброс устройства. Функция резервного копирования в облако использует автоматическое резервное копирование Android.
Резервное копирование в облако работает на уровне файловой системы. Написание кода не требуется. Приложения подключаются по умолчанию, но вы можете отказаться от резервного копирования или внести изменения через панель разработчика. Чтобы обеспечить безопасность данных резервного копирования, данные приложения шифруются на каждом отдельном устройстве и остаются зашифрованными на наших серверах.
Пользователи могут отключить резервное копирование в облако в настройках своей гарнитуры.

Сценарии использования для пользователей приложения

Как посмотреть и удалить резервные копии для приложения, которым я владею?

Чтобы посмотреть существующие резервные копии для всех ваших приложений, перейдите на вкладку Резервное копирование в облако на сайте Meta Quest.
На этой странице будет представлен список приложений, которыми вы владеете, и фильтр для поиска по названию. Если для приложения существует резервная копия в облаке, будет указано время ее создания, размер и предоставлена возможность удалить ее.

Когда приложение, которым я владею, выполняет резервное копирование?

Резервные копии создаются автоматически в следующие моменты:
  • один раз за ночь, когда устройство находится в режиме ожидания, заряжается и подключено к Wi-Fi (аналогично системным обновлениям ОС);
  • при удалении приложения, если оно было установлено из магазина;
  • каждый раз при выходе из приложения, но не чаще чем один раз в шесть часов.
Каждый пользователь может иметь несколько “слотов” резервного копирования на одно приобретенное приложение на каждую гарнитуру, и каждое новое резервное копирование не будет перезаписывать предыдущий слот. В дополнение к автоматическим резервным копиям пользователи могут вручную запросить резервное копирование на вкладке "Резервное копирование в облако" в настройках устройства.

Когда приложение, которым я владею, восстанавливает свои данные из резервной копии в облаке?

Функция резервного копирования в облако автоматически восстанавливает последнюю резервную копию для приложения при его установке. Пользователи могут выбрать, какую резервную копию восстановить, на странице Резервное копирование в облако. Здесь также можно в любое время запросить ручное восстановление выбранной резервной копии.

Переносятся ли мои данные резервной копии в облаке с одного устройства на другое?

Да. Если функция резервного копирования в облако не может найти данные для определенной пары приложение+устройство, то будет восстановлена последняя резервная копия для этого приложения на всех имеющихся устройствах пользователя.
Пример: пользователь, имеющий данные резервного копирования в облаке для приложения на своей гарнитуре Meta Quest 2, покупает Meta Quest 3. После установки приложения на новой Meta Quest 3 система резервного копирования в облако восстановит данные из резервной копии с Meta Quest 2, так как не найдет резервные данные для этого приложения, связанные с Meta Quest 3.
После выполнения резервного копирования на Meta Quest 3 эти данные будут сохранены в “слоте” для приобретенного приложения для гарнитуры Meta Quest 3. С этого момента резервные копии для Meta Quest 2 и Meta Quest 3 будут различаться.
Чтобы скопировать данные резервной копии в облаке с одной гарнитуры на другую, перейдите на вкладку Резервное копирование в облако на сайте Meta Quest и выполните восстановление данных на гарнитуру, на которую нужно перенести данные. Для целевой гарнитуры автоматически создается новый слот для перенесенных данных резервной копии в облаке.
Данные резервной копии в облаке можно перенести с гарнитур нового поколения (например, с Quest 3) на устройства старшего поколения (например, на Quest 2) и наоборот.

Сценарии использования для разработчиков приложений

Как включить резервное копирование в облако для моего продукта, если ранее использовались Cloud Saves V2?

На Панели разработчика нажмите Разработка > Облачное хранилище. Выберите свое приложение в раскрывающемся списке. На странице Облачное хранилище, убедитесь что переключатель Включить автоматическое резервное копирование в облако включен.
Подробнее о правильном хранении данных см. в разделе Техническая реализация.

Как отключить резервное копирование в облако для моего продукта, если я не хочу его использовать?

На Панели разработчика в разделе Разработка > Облачное хранилище выключите переключатель Включение автоматического резервного копирования в облако.

Техническая реализация

Храните данные приложения только в поддерживаемых каталогах, не превышайте лимит в 100 МиБ и включите резервное копирование в облако для своего приложения на Панели разработчика.
Если эти условия выполнены, резервное копирование приложения будет выполняться автоматически.

Каталоги, которые будут включены в резервное копирование

Автоматическое резервное копирование охватывает файлы в большинстве каталогов, назначенных приложению системой. Вы можете найти эти расположения файлов через объект Context:
  • общие файлы настроек;
  • файлы, сохраненные во внутреннем хранилище вашего приложения, доступные с помощью getFilesDir() или getDir(String, int);
  • файлы в каталоге, возвращаемом методом getDatabasePath(String), в том числе файлы, созданные с помощью класса SQLiteOpenHelper;
  • файлы на внешнем хранилище в каталоге, возвращаемом методом getExternalFilesDir(String);
  • перечисленные выше расположения, предоставляемые контекстом хранилища, защищенного на уровне устройства.
Важно: резервные копии настраиваемых папок, созданных в корневом каталоге приложения, не создаются. Если вы хотите создавать пользовательские папки, они должны находиться в каталоге, возвращаемом методом getFilesDir().
Папки, включенные в резервное копирование
/data/data/<package-name>/files/
/data/data/<package-name>/<custom-folder>/
/sdcard/Android/data/<package-name>/files/
Папки, не включенные в резервное копирование
/data/data/<package-name>/cache/
/data/data/<package-name>/no_backup/
/sdcard/Android/data/<package-name>/cache/
/sdcard/Android/data/<package-name>/<custom-folder>

Каталоги, которые не будут включены в резервное копирование

Автоматическое резервное копирование Android исключает файлы в каталогах, возвращаемых методами getCacheDir(), getCodeCacheDir() и getNoBackupFilesDir(). Файлы, сохраненные в этих местах, нужны только временно и намеренно исключены из операций резервного копирования.
Кроме того, в резервное копирование не включаются папки внутри getFilesDir() с именем UnityCache.
По умолчанию исключены каталоги cache/ и UnityCache/.
Вы также можете настроить файлы и папки, которые не нужно включать в резервное копирование, на Панели разработчика в разделе Разработка > Облачное хранилище. При указании пользовательских исключений учитывайте следующее:
  • Вы можете указывать только пути, относящиеся к внутренним или внешним каталогам файлов пакета (это каталоги, возвращаемые методами getFilesDir() или getExternalFilesDir()).
    • Пример: если данные, которые вы хотите исключить, находятся по пути /storage/emulated/0/Android/data/com.company.somegame/files/UE4Game/SomeGame/SomeGame/BigFiles/SomeFile.txt, для исключения нужно указать путь UE4Game/SomeGame/SomeGame/BigFiles/SomeFile.txt.
  • Если вы указываете пользовательское исключение файлов, все соответствующие файлы и папки будут исключены из внутреннего/внешнего каталогов файлов. Нельзя указать, какой из двух каталогов будет целевым.
  • Вы не можете использовать символы подстановки. Пути должны точно указывать на конкретные файлы или папки.
Информацию о более точном контроле включения и исключения файлов и папок см. в документации по автоматическому резервному копированию Android (раздел о включении файлов).

Следует ли хранить файлы скачиваемого контента в каталогах, которые будут добавлены в резервную копию?

Храните файлы сохранения игр со скачиваемым контентом и файлы конфигураций в одном из каталогов, которые будут включены в резервное копирование.
Не размещайте файлы объектов скачиваемого контента в каталоге для резервного копирования.
Файлы объектов должны находиться в исключенном каталоге, чтобы они не включались в резервное копирование. Если общий размер превышает 100 МиБ, это может привести к сбою резервного копирования. Даже если сбоя не произойдет, это может ухудшить пользовательский опыт взаимодействия. Во-первых, пользователь будет загружать много ненужной информации. Кроме того, если он удалит приложение и затем переустановит его после обновления, он, скорее всего, потратит время на скачивание старых версий файлов, которые затем почти сразу будут обновлены. Система прав на скачиваемый контент позволит пользователю скачать эти файлы заново обычным способом.

Как разработчик может проверить, когда в последний раз выполнялось резервное копирование приложения?

Вы можете проверить время последнего резервного копирования приложения на странице Резервное копирование в облако на сайте Meta Quest.
Кроме того, это можно проверить на вкладке "Резервное копирование в облако" в настройках устройства Meta Quest.

Как разработчик может проверить, какие файлы были добавлены в резервную копию?

Вы можете проверить, какие файлы добавлены в вашу резервную копию, отслеживая logcat во время резервного копирования. В журналах должно быть указано, какие файлы были добавлены в резервную копию, а также их размеры. Это полезно, если ваше приложение превышает лимит резервного копирования в 100 МБ, и позволяет определить, какие файлы занимают пространство в резервной копии приложения, а также убедиться, что недавно реализованные правила исключения и включения файлов работают так, как задумано.
Вы можете выполнить следующую команду adb для фильтрации logcat, чтобы получить только записи, связанные с резервным копированием:
adb logcat | grep Backup

Тестирование

Тестирование резервного копирования в облако

Для тестирования системы резервного копирования можно использовать команду bmgr оболочки Android. Чтобы принудительно запустить резервное копирование для указанного пакета, используйте следующую команду:
bmgr backupnow --monitor-verbose <package-name>
Эту команду можно запустить напрямую с вашего локального хоста с помощью adb shell или из сеанса оболочки adb на вашем устройстве.
Чтобы получить информацию о команде bmgr, выполните ее без опций.
Важно! Команда ADB restore не работает в версии 35. Однако есть обходной путь: восстановление ПРОИЗОЙДЕТ при установке приложения. В настоящее время вы не можете принудительно восстановить данные с помощью ADB. Принудительно выполнить резервное копирование, а затем немедленно принудительно восстановить данные на другой гарнитуре невозможно. Однако вы можете удалить и переустановить приложение на второй гарнитуре, чтобы принудительно выполнить восстановление.
Примечание. Это НЕ то же самое, что команда adb backup, которая не поддерживается.

Переключение функции резервного копирования в облако в опубликованном приложении для тестирования

Примечание. Если вы планируете это делать, рекомендуется действовать очень осторожно. Мы не советуем проводить такие действия с опубликованным приложением.
Вы можете отключить функцию резервного копирования и восстановления в настройках устройства с помощью переключателя Cloud Backup (Резервное копирование в облако). По умолчанию она включена для всех пользователей. Вы также можете очистить данные конкретного приложения с помощью новой кнопки на панели настроек хранилища.
Кроме того, вы можете отключить резервное копирование в облако для вашего приложения на Панели разработчика. В разделе Разработка > Облачное хранилище выключите переключатель Включение автоматического резервного копирования в облако.

Устранение неполадок

Каковы распространенные причины, по которым каталог не включается в резервное копирование?
Наиболее распространенные случаи, когда данные приложения не соответствуют требованиям:
  • данные приложения находятся в неподдерживаемом каталоге (например, в пользовательской папке в корневом каталоге);
  • объем данных приложения превышает 100 МиБ;
  • каталог, содержащий данные сохранений, случайно исключен разработчиком.
Нужно ли обновлять или открывать приложение для выполнения резервного копирования?
Как правило, нет. Если приложение соответствует требованиям для резервного копирования и соблюдает указанные выше условия, резервное копирование произойдет автоматически.
Как пользователь может вручную запустить резервное копирование (например, перед восстановлением заводских настроек)?
Произвольные резервные копии поддерживаются как для пользователей, так и для разработчиков на панели "Резервное копирование в облако" в настройках устройства. Разработчики также могут тестировать их с помощью команды bmgr через ADB.
Что будет, если у пользователя более старая версия ОС и он не включал свою гарнитуру Meta Quest? Можно ли включить гарнитуру и выполнить резервное копирование?
Резервное копирование в облако не сработает, если на гарнитуре не установлена ОС версии 35. Действуют стандартные требования для обновлений ОС.
Как удалить отдельное сохранение?
Перейдите в профиль Резервное копирование в облако. Рядом с каждым сохранением будет опция удаления. Нажмите ее, чтобы удалить данные сохранения этого приложения из облака. Обратите внимание: удаление необратимо. Если вы удалите все резервные данные для приложения, они будут полностью удалены из облака. Приложение может иметь данные резервного копирования на нескольких устройствах. Чтобы полностью удалить все данные из облака, возможно, потребуется удалить резервные копии для этого приложения на всех имеющихся устройствах.
Какие резервные копии хранятся, если пользователь имеет данные приложения на нескольких устройствах?
Каждое устройство имеет свою историю резервного копирования. Резервные копии, созданные на одном устройстве, не конфликтуют с резервными копиями, созданными на других устройствах, и не перезаписывают их.
Сколько резервных копий хранится для каждого приложения?
Каждое приложение хранит максимум пять резервных копий для каждого устройства. Кроме того, две самые старые резервные копии для приложения хранятся до недели после их создания, после чего могут заменяться новой резервной копией.
Когда я удаляю приложение, появляется предупреждение, что мои данные могут быть потеряны навсегда. Означает ли это, что резервное копирование в облако не работает?
Нет, это просто предупреждение. При удалении приложения удаляются локальные данные, но не резервные копии в облаке. Проверьте настройки резервного копирования в облако в своем профиле или на вкладке "Резервное копирование в облако" в настройках устройства и убедитесь, что резервная копия безопасно сохранена в облаке.
Логотип навигации
Русский
© 2026 Meta