在应用程序安装时,Android赋予每个包一个唯一且不变的Linux用户ID(在不同设备上,同一个包可能有不同的UID)。因为进程级别的安全限制,任意两个包通常不能运行在同一个进程,因为它们是作为不同的Linux用户启动的。
    可以使用AndroidManifest.xml中manifest元素的sharedUserId属性,赋予不同的包相同的UID。为了安全起见,两个包会被看做同一个应用程序,拥有相同的UID和文件权限。同时为了保持安全性,这两个应用程序必须具有相同的签名和UID。

 sharedUserId的属性值不能以数字开头,所以该值并不是Uid的值,获取所在进程的Uid可以通过android.os.Process.myUid()方法获取。

PackageManager.getPackagesForUid
    获取与指定用户ID相关联的所有包名。
Context.createPackageContext
    返回指定应用程序名称的Context对象
Context.getClassLoader
    返回该Context的ClassLoader  

相关文章:

  • 2022-12-23
  • 2022-01-23
  • 2022-01-30
  • 2021-07-25
  • 2022-12-23
  • 2021-04-11
  • 2021-08-16
猜你喜欢
  • 2021-10-25
  • 2022-02-02
  • 2022-02-26
  • 2022-01-04
  • 2022-02-05
  • 2021-07-21
  • 2021-06-20
相关资源
相似解决方案