【问题标题】:Two Android applications with the same user ID两个具有相同用户 ID 的 Android 应用程序
【发布时间】:2011-06-15 06:45:29
【问题描述】:

来自http://developer.android.com/guide/topics/fundamentals.html

可以安排两个应用程序共享同一个 Linux 用户 ID,在这种情况下,他们可以访问彼此的文件。到 节省系统资源,具有相同用户 ID 的应用程序也可以 安排在同一个 Linux 进程中运行并共享同一个 VM( 应用程序也必须使用相同的证书进行签名)。

我们如何为两个应用程序实现相同的用户 ID?有什么例子吗?

【问题讨论】:

    标签: android


    【解决方案1】:

    您可以通过将 AndroidManifest.xml 文件中的 sharedUserIdsharedUserLabel 设置为相同的值来实现此目的。例如,如果我有以下 2 个清单文件(我只包括开头):

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.example.package1" 
          android:sharedUserId="userId"
          android:sharedUserLabel="@string/label_shared_user" 
          android:versionCode="1" 
          android:versionName="1.0.0">
    

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.example.package2" 
          android:sharedUserId="userId"
          android:sharedUserLabel="@string/label_shared_user" 
          android:versionCode="1" 
          android:versionName="1.0.0">
    

    那么他们将共享同一个用户。

    【讨论】:

    • 但是我强烈反对这样做。绝大多数应用程序不应该这样做;它仅适用于特殊情况。使用它会导致行为上的许多细微差别(例如所有应用程序共享相同的权限),这是大多数开发人员不应该强加给自己的。
    • 太棒了!!!但还有一种方法可以从第三个应用程序获取具有相同 shareUserId 的应用程序。我的意思是我希望检测具有相同 sharedUserId 的 2 个应用程序
    • developer.android.com/reference/android/content/pm/…:两个应用程序的uid是一样的。
    • 一个重要的补充是您只能安装两个具有相同 shareduserid 的应用程序,因为这两个应用程序都使用相同的证书签名
    猜你喜欢
    • 2013-08-07
    • 1970-01-01
    • 1970-01-01
    • 2016-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-07
    • 2011-08-25
    相关资源
    最近更新 更多