当用户选择从您的旧设备复制应用和数据时 Sharedpreferences/AndroidKeyStore/AccountManager 会发生什么

What happens to Sharedpreferences/AndroidKeyStore/AccountManager when user choose to copy apps and data from your old device

当用户获取新的 phone 并拥有现有的 phone 并希望将应用程序和数据迁移到新的 phone 时。 SharedPreferences/AndroidKeyStore/AndroidAccountManager 到底发生了什么?

IE,如果新设备说不是同一个应用程序,它会复制 SharedPreferences/Datastore 中的所有内容吗?

如果新 phone 已经有相同的应用怎么办?如果它说相同的版本数据合并或替换或者迁移失败并且新的 phone 保留其数据?

如果应用程序版本不同怎么办?选择哪个版本的应用程序在新设备上?

然后,对于 AndroidAccountManager,我的理解是选择一个应用作为绑定到该帐户类型的主要应用,如果您有多个应用都使用同一个帐户,它仍然会绑定到第一个具有此类帐户的设备上的应用程序(假设 IIRC 所有应用程序都具有相同的签名密钥并且使用相同的帐户类型)。

迁移过程中发生了什么?它会保留该应用程序 -> AccountManager link 吗?或者它是随机的,哪个应用程序先运行?

那么关于AndroidKeyStore,由于它有硬件支持,这是否意味着所有密钥都丢失了?这意味着涉及他们的所有过程都需要一种方法来生成新密钥并确保迁移计划有效?是否会有任何关于此的信号,或者只是钥匙不见了,仅此而已?

默认情况下,自动备份包括系统分配给您的应用程序的大部分目录中的文件:

共享首选项文件。

保存到应用程序内部存储的文件,可通过 getFilesDir() 或 getDir(String, int) 访问。

getDatabasePath(String) 返回的目录中的文件,其中还包括使用 SQLiteOpenHelper 创建的文件 class。

您可以在这里找到更多信息: https://developer.android.com/guide/topics/data/autobackup#Files

对于 android keystoer,密钥永远无法备份
对于客户经理:旧设备上的帐户将转移到新设备上,您可能不需要为这些帐户输入 2fa。 请注意,您只能在设备设置时从旧的 phone 恢复备份,因此您不能在此步骤之前在 android phone 上安装应用程序,但如果应用程序存在这样的制造商应用程序,该应用程序尚未启动,因此不会有任何文件。