根据 Android 8.0行为更改,
对于安装在运行Android 8.0的设备上的应用,ANDROID_ID的值现在是每个应用签名密钥以及每个用户的范围。对于app-signing密钥,用户和设备的每个组合,ANDROID_ID的值是唯一的。因此,在同一设备上运行的具有不同签名密钥的应用不再看到相同的Android ID(即使是同一用户)。
为了测试上述更改,我做了两个测试APK并找到了以下行为(在Nexus 5X,OS 8.0.0上测试过):
以下是我的询问:
答案 0 :(得分:4)
其表现符合预期。
正如你在问题中所强调的那样:
因此,不同签名密钥的应用运行在同一个应用上 设备不再看到相同的Android ID
当您使用Android studio构建不同的APK时,调试签名密钥是相同的。因此,您会看到相同的Android_ID
但是当您使用不同的PC时,调试签名密钥是不同的。因此,您会看到不同的Android_ID。
答案 1 :(得分:4)
正如其他答案解释了为什么你为不同的apks获得相同的id,它们是正确的。
通过创建两个不同的证书来检查此行为的最佳方法,并使用这两个证书对您的apk进行签名。
总结你的所有困惑,[来自Changes to Device Identifiers in Android O]