用户ID
在应用程序安装时,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