Android下uid与多用户释疑(二)

本文探讨Android从4.2版本开始支持的多用户功能,重点在于uid在多用户环境下的工作原理。在不同用户下,应用的uid与用户id结合形成新的uid,确保每个用户的数据隔离。同时,UserHandle类提供了多用户相关的接口。尽管概念上存在混淆,但通过理解Process和UserHandle的不同API,可以清晰地区分应用id和Android用户id。
摘要由CSDN通过智能技术生成

3.Android多用户
Android4.2开始支持多用户。Linux的uid/gid多用户体系已经被用在App管理上了,所以android重新开发了一套多用户体系,在UserManagerService中管理,PackageManagerService和ActivityManagerService中也有相关逻辑。Android的多用户可以做到不同用户的应用的物理文件级(数据)的区分,以实现不同用户有不同的壁纸、密码,以及不同的应用等。本文不展开多用户的机制,只集中于uid。
先看一下在多用户下,应用的uid怎么变化。
在一个有两个用户(用户id分别为0和10)的安卓设备上,在用户10下安装一个应用,此时,在0下是看不到这个应用的。
从packages.xml查看此应用的uid:userId=”10078”
Process.myUid()得到uid为”1010078”
Process.myUserHandle()得到”userHandle{10}”
在另一个用户0下安装此应用。
查看packages.xml,看到uid没有变化10078
Process.myUid()得到uid为”10078”
Process.myUserHandle()得到”userHandle{0}”
adb shell进入命令行,分别查看data/user/0和data/user/10下面此应用的数据区:
用户0:
这里写图片描述
用户10:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值