根据《Android 8.0 行为变更》,安装在运行 Android 8.0 设备上的应用程序现在会根据应用签名密钥以及用户进行范围限定,因此 ANDROID_ID 的值是每个应用程序签名密钥、用户和设备组合唯一的。因此,在同一设备上运行不同签名密钥的应用程序不再看到相同的 Android ID ,即使是对于相同的用户。为测试以上更改,我创建了两个测试 APK 并发现以下行为(在 Nexus 5X,OS 8.0.0 上测试):
- 如果目标 SDK 版本为 26、编译 SDK 版本为 26、构建工具版本为 26.0.0,则从同一台 Windows 计算机生成的两个不同的 apk(连同不同的包名称)显示相同的 ANDROID_ID。当使用相同的包名称从不同的计算机生成 APK 时,会显示不同的 ANDROID_ID。
下面是我的问题:
1. 这是正确的行为吗?为什么两个不同的 APK 显示相同的 ANDROID_ID?
2. 是否会有任何更改,可以使我的应用程序的 ANDROID_ID 发生更改(无需卸载/重新安装)?
3. 在 Nexus 5x,OS 6.0.1 上获得相同的行为,目标 SDK 版本为 23,编译 SDK 版本为 23,构建工具版本为 25.0.0。我没有看到 Android O 中的任何特定行为更改。我错过了什么?为什么会出现相同的行为?
- 如果目标 SDK 版本为 26、编译 SDK 版本为 26、构建工具版本为 26.0.0,则从同一台 Windows 计算机生成的两个不同的 apk(连同不同的包名称)显示相同的 ANDROID_ID。当使用相同的包名称从不同的计算机生成 APK 时,会显示不同的 ANDROID_ID。
下面是我的问题:
1. 这是正确的行为吗?为什么两个不同的 APK 显示相同的 ANDROID_ID?
2. 是否会有任何更改,可以使我的应用程序的 ANDROID_ID 发生更改(无需卸载/重新安装)?
3. 在 Nexus 5x,OS 6.0.1 上获得相同的行为,目标 SDK 版本为 23,编译 SDK 版本为 23,构建工具版本为 25.0.0。我没有看到 Android O 中的任何特定行为更改。我错过了什么?为什么会出现相同的行为?