对于我来说,在Android上备份和还原应用程序是一种糟糕的体验,这对我来说并没有争议。现在,这种说法并不是普遍适用的-如果您要从与以前的设备相同的供应商那里升级到Android设备,那么应用程序的迁移过程通常是无缝的。询问曾经尝试将其所有应用程序迁移到其他OEM上的新手机的人(其中包括技术媒体中的几乎每个人),您可能会听到有关必须重新设置应用程序的投诉。Android 11在这方面悄然进行了重大更改,但可悲的是Google仍未走得足够远。
在Android上备份和还原应用程序之所以如此痛苦的主要原因是,许多应用程序不允许备份其数据。Android本身支持通过BackupManager基础结构备份和还原应用及其数据,在大多数Android设备上,该基础结构都是通过Google Play服务进行处理的,文件存储在用户个人Google云端硬盘帐户的云中。最多可以备份应用程序的25MB私有数据文件,包括它们的共享首选项,数据库以及保存到应用程序特定于应用程序的内部和外部存储目录中的文件。但是,许多开发人员选择通过设置Manifest属性来选择备份其应用程序数据android:allowBackup为“假”。某些应用程序选择退出的理由很充分,特别是如果该应用程序处理敏感数据并且不希望提取该数据,但是这些应用程序不应基于无法访问其私有数据目录的假设,并且相反,应该加密正在使用的所有敏感数据。
因此,无论采用哪种方法备份应用程序及其数据,无论是通过ADB,Google云端硬盘还是通过Helium等应用程序进行备份,都无法完全备份设备上的每个应用程序。这就是为什么启用根目录的备份和还原应用程序(如Titanium Backup)之所以存在很久的原因,因为所有非根目录解决方案在数据迁移方面的效果都差强人意。对于普通用户而言,在恢复出厂设置后设置设备或切换到新设备时,这可能会导致令人沮丧的体验。
Android 11的变化
但是,在Android 11上,系统会忽略“allowBackup清单”属性来进行应用程序文件的“设备到设备”迁移。这只会影响以API级别30为目标的应用程序,目前尚不多,但由于Google Play不断变化的API级别要求,明年以Android 11为目标的应用程序将大幅增加。
对于高级用户来说,这意味着ADB备份和还原可能在Android 11中变得更加强大。上一次ADB备份和还原看到的升级是在Android 8.0 Oreo中。不幸的是,ADB备份和还原已被弃用,并且可以在以后的版本中删除(它仍可在Android 11 Beta 1中使用),因此谁知道您将能够利用平台行为的这种变化多长时间。
另一方面,系统仍然会尊重allowBackup基于云的备份和还原的属性。可悲的是,这意味着普通用户无法从Google云端硬盘还原备份,因此无法获得更好的备份和还原。