Резервная копия Android не является образом памяти смартфона
Фраза «резервная копия телефона» создает неверное ожидание: кажется, что Google сохраняет состояние устройства примерно так же, как программа клонирования сохраняет системный диск компьютера. Android работает иначе. Согласно официальной справке Google, системная резервная копия может включать приложения и их данные, историю звонков, контакты, настройки устройства, SMS и MMS. RCS-сообщения дополнительно сохраняются при использовании Google Messages, фотографии и видео обслуживаются Google Photos. Уже из этого разделения видно, что единого архива, содержащего побайтовую копию внутренней памяти смартфона, не создается.
У приложений существует собственный механизм Auto Backup. Он появился в Android 6.0 и предназначен для сохранения части приватных данных приложения в Google Drive. По умолчанию туда могут попадать SharedPreferences, внутренние файлы, базы данных SQLite и некоторые файлы из каталога приложения на внешнем хранилище. Кеш, code cache и каталог noBackupFilesDir исключаются. Разработчик может дополнительно указать собственные правила включения и исключения файлов либо вообще отказаться от облачного резервного копирования. Поэтому два приложения, установленные на одном смартфоне и использующие одну систему резервирования Android, после восстановления способны вести себя совершенно по-разному.
Есть ограничение, о котором пользователь обычно узнает уже после неудачного переноса. Android Developers устанавливает для Auto Backup квоту 25 МБ на одного пользователя одного приложения. Если объем данных, который приложение пытается передать в облачную копию, превышает эту границу, система вызывает onQuotaExceeded() и не сохраняет эти данные через Auto Backup. Android позднее проверяет объем повторно и может возобновить резервирование, если приложение снова укладывается в лимит. Эта квота не расходует обычное пространство Google Drive пользователя, а сохраненная копия приложения недоступна для просмотра как обычный файл.

Отсюда появляется первый парадокс при настройке нового телефона. Google Play знает список ранее установленных приложений и может скачать их заново. Это еще не означает, что вместе с APK существует пригодный набор пользовательских данных. После установки Android пытается восстановить доступную копию, но приложение может исключить часть информации, использовать собственное облако, требовать повторную авторизацию или вообще не участвовать в Auto Backup. Внешне все выглядит как частично завершившийся перенос: иконки вернулись, а содержимое нет. Для системы это могут быть две независимые успешно выполненные операции.
Еще одна особенность связана со временем создания копии. Auto Backup не выполняется непрерывно после каждого изменения. Документация Android указывает несколько условий: резервирование должно быть включено, после предыдущего backup должно пройти не менее 24 часов, устройство должно находиться в состоянии простоя и иметь подходящее сетевое соединение. На практике процедура обычно выполняется ночью. Если пользователь изменил данные приложения утром, разбил смартфон днем и вечером восстанавливает новый аппарат, последняя облачная копия конкретного приложения может предшествовать этим изменениям.
Прямой перенос со старого телефона и восстановление из облака — разные процедуры
При первом включении нового Android-смартфона система предлагает перенести данные непосредственно со старого устройства. Это Device-to-Device Transfer, или D2D. Передача может идти по кабелю или беспроводному соединению в зависимости от устройств. Ее не следует считать другим интерфейсом к той же облачной копии: Android рассматривает D2D и cloud backup как отдельные способы миграции, а приложение может задавать для них разные правила.




