Этот механизм не имеет никакой документации, ориентированной на пользователя, и не много документации для разработчиков приложений, поскольку она должна автоматически делать правильные вещи, но the code is available. Вся приведенная ниже информация относится к проверке исходного кода и документированных параметров инструмента bmgr
. Этот ответ адаптирован, чтобы быть более ориентированным на разработчика, от удобного для пользователя answer I originally wrote на Android Stack Exchange.
Давайте поговорим о множествах, ребенок
служба резервного копирования Android, есть понятие называется набор: совокупность всех данных, резервируемых с одного устройства на одном транспорте. Каждый набор идентифицируется уникальной строкой, такой как IMEI на устройстве. Когда приложение (или список установленных приложений) резервное копирование, его данные резервного копирования входят в набор, связанный с устройством, на котором оно выполняется. Все наборы по-прежнему зависят от учетной записи пользователя. Если вы протрите свое устройство и продадите его кому-то другому, он не сможет получить доступ к этому устройству, если он не сможет войти в ваш аккаунт Google.
поведение по умолчанию
При установке приложение или устройство имеет свой список приложений восстановлен, система резервного копирования первый выглядит в комплекте этого устройства для резервного копирования данных для этого пакета. Если он не находит никого (либо потому, что это совершенно новое устройство без резервных данных, либо потому, что этот пакет никогда не был установлен на этом устройстве), он расширит поиск до других наборов. (Если есть выбор, он будет использовать последний набор, который использовался для восстановления полного устройства.)
Таким образом, при настройке нового устройства он восстановит список приложений из старого устройства резервного копирования и восстановления каждого приложения из резервной копии старого устройства. Если у вас установлено приложение на одном устройстве, и вы установите его на другое устройство, приложение будет восстановлено со своими данными со старого устройства. В любом случае данные теперь будут скопированы в новый набор , что означает, что данные резервного копирования с двух устройств будут отныне отныне.
После того, как вы перезагрузили заводское устройство, оно будет восстановлено с последней резервной копии этого устройства, если оно есть, и, если это произойдет, из резервной копии другого устройства, если оно есть, но оно начнет создавать свой собственный набор из Затем на.
bmgr
: основное использование
Инструмент bmgr
предназначен для отладки и тестирования, и дает вам немного контроль над резервного копирования/восстановления процесса. Вы можете использовать этот инструмент в adb shell
для запуска резервных копий и восстановления выбранных пакетов, очистки данных резервных копий и даже восстановления всего устройства.
Не пытайтесь использовать его в оболочке на устройстве, кроме как с правами root: вам нужен системный уровень android.permission.BACKUP
, чтобы сделать что-нибудь интересное с ним.
Для тестирования вы можете сделать пакет обновления его скопированные данные немедленно:
bmgr backup com.shadowburst.showr
bmgr run
(или что-то имя пакета). Для того, чтобы восстановить один пакет из резервируемых данных было бы выбрать по умолчанию:
bmgr restore com.shadowburst.showr
Это работает только на уже установленные пакеты: он не будет устанавливать пакет для того, чтобы восстановить данные. Обе эти команды предназначены только для тестирования, поскольку обычно устройство резервирует и восстанавливает данные всякий раз, когда это необходимо.
Больше контроля
Теперь для вещей, что резервная система не будет делать на его дальше. Для того, чтобы увидеть, что наборы резервируемых данных доступны:
bmgr list sets
, и вы получите некоторый выход так:
3ff7800e963f25c5 : manta
3f0e5c90a412cca7 : manta
3dd65924a70e14c8 : TF101
3baa67e9ce029355 : m0
64-битное число слева называется маркера и однозначно идентифицирует набор. Вещь справа - это (относительно) дружественное имя для устройства, которому принадлежит набор. Например, manta - это кодовое название Nexus 10; TF101 относится к оригинальному Asus Transformer. Вы можете восстановить данные из пакета из набора по вашему выбору, указав его фишку:
bmgr restore 3ff7800e963f25c5 com.shadowburst.showr
Вы можете добавить больше имен пакетов в конце команды, чтобы восстановить несколько пакетов одновременно, или вы не можете указать ни один пакет имя (только токен), чтобы восстановить каждый пакет с данными в этом наборе (то есть он выполняет полнофункциональную систему восстановления).
Наконец, вы можете стереть данные пакета от текущего набора:
bmgr wipe com.shadowburst.showr
Это сделает его следующее резервное копирование начала работы с нуля. Это может быть полезно при отладке вашего резервного кода.
Вы не можете заставить устройство начать запись в другой набор, и вы не можете стереть весь набор за один раз.
Я искал тот же ответ. Оказывается, существует понятие множеств. Пожалуйста, взгляните на [link] (http://android.stackexchange.com/questions/42245/google-backup-multiple-devices-using-the-same-account-what-happens-on-restore#answer-49425) –