如果未设置 android:sharedUserId,默认设置的 android:sharedUserId 是多少

dor*_*ors 5 android android-manifest

文档

将与其他应用程序共享的 Linux 用户 ID 的名称。默认情况下, Android 为每个应用程序分配自己唯一的用户 ID。

假设我有一个没有在 AndroidManifest.xml 文件中指定 android:sharedUserId 的应用程序。

Android 生成的默认 sharedUserId(请参阅上面的文档)是在构建中设置的(对于所有设备上的此应用程序都相同),还是在安装了该应用程序的每个设备上生成了不同的 sharedUserId?

Ehs*_*adi 2

Android 会为您设备上安装的每个应用程序生成随机的唯一 ID。

\n\n

您可以通过以下方式获取该值:

\n\n
adb shell dumpsys package com.example.myapp | grep userId=\n
Run Code Online (Sandbox Code Playgroud)\n\n

或在代码中:

\n\n
int uId = getPackageManager().getApplicationInfo("com.example.myapp",PackageManager.GET_META_DATA).uid;\n
Run Code Online (Sandbox Code Playgroud)\n\n

但是,如果您android:sharedUserId为两个或多个应用程序设置相同的值,则它们将共享相同的 ID \xe2\x80\x94,前提是它们的证书集相同。

\n\n

具有相同用户 ID 的应用程序可以访问彼此的数据,并且如果需要,可以在同一进程中运行。

\n