我是 Adroid 应用生态系统的新手。我构建了一个简单的应用程序,并注意到有两个不同的 ANDROID ID(我在模拟器中运行应用程序)
- 一个存储在
/data/system/users/0/settings_secure.xml
文件中:
<setting id="25" name="android_id" value="9f43e4f495a6730" package="android" defaultValue="9f43e4f495a6730" defaultSysSet="true" />
- 在终端中执行命令
$adb shell settings get secure android_id
时--->这也是我得到的
- 其他存储在
/data/system/users/0/settings_ssaid.xml
<setting id="4" name="10153" value="35ea805581c66911" package="com.example.app_v1.demo.debug" defaultValue="35ea805581c66911" defaultSysSet="false" tag="null" />
<setting id="5" name="10154" value="35ea805581c66911" package="com.example.app_v2.full.debug" defaultValue="35ea805581c66911" defaultSysSet="false" tag="null" />
- 在我的应用程序代码中执行语句后:
Settings.Secure.getString(this.getContentResolver(), Settings.Secure.ANDROID_ID
---> 这是我得到的 - 看起来这也称为SSAID ..
有人可以分享
- 有两个不同的ID的目的?在哪个用例中使用哪个?尽管存储在不同的位置,但两者都被称为 ANDROID ID,这有点令人困惑(我的理解是否正确#1 可能由系统/Andorid 应用程序使用,而#2 由用户使用,第 3 方应用程序)
- 我也觉得奇怪的是我
app_v1
和app_v2
输出相同的ANDROID ID(35ea805581c66911)。我的理解是否正确,因为在 Android-O 发布后,这个 ANDROID ID 的范围是根据https://developer.android.com/reference/android/provider/Settings.Secure#ANDROID_ID通过签名密钥和用户来确定的?
感谢您提前澄清