[Manifest]关于sharedUserId&sharedUserLabel

546 阅读1分钟

sharedUserId

用于不同app之间数据共享。 不同App之间数据共享主要有如下方式:

  1. SharedPreferences&ContentProvider
  2. 不同App指定相同sharedUserId,分配相同的Linux UserId,使其可以数据共享。

UserId的特点:

  1. 作为APK身份的标识
  2. UserId对应一个Linux用户,所以不同APK(用户)间互相访问数据默认是禁止的

如果想要不同的APK之间共享数据需要满足以下条件: 1.APK的签名必须相同 2.android:sharedUserId的值必须相同 3.如果想要运行在相同进程中,必须设置android:process的值相同。

通过如下方式获取其他app的Context对象

Content content = this.createPackageContent(“com.example.demo”,Content.CONTENT_IGNORE_SECURITY);

sharedUserLabel

这个属性给共享的UserId定义了一个用户可读的标签。这个标签必须用字符串资源来设置,不能使用原生的字符串。 这个属性在API Level 3中被引入,只有在sharedUserId属性被设置,这个属性才有意义。

参考:www.cnblogs.com/lianghui66/…