Android多用户模式下开发不得不知的注意事项

虽说 Android 在4.2就开始支持多用户了,但是笔者手头上4.2系统的手机,并没有找到新用户创建的菜单。只好拿6.0系统的 nexus5 来做测试了。

一、手机状态信息不一样

news11-1-1.jpgnews11-1-2.jpg

Owner 用户                                                        其它用户

手机状态差别 (其它用户获取信息受限):

  • 1.无SIM卡状态
  • 2.无IMEI信息
  • 3.wifi mac地址被设置成了02:00:00:00:00:00

 

二、多用户对系统信息的影响

AndroidID会不一样,对序列号没有影响。

当然对IMEI、MAC地址也不会有影响。

 

三、UserId不一样


                    @SystemApi
                    public static final int myUserId() {
                        return getUserId(Process.myUid());
                    }

                    public static final int getUserId(int uid) {
                        if (MU_ENABLED) {
                            return uid / PER_USER_RANGE;
                        } else {
                            return 0;
                        }
                    }

                    public static final int PER_USER_RANGE = 100000;
                    

其它用户的uid:uid:1010146

正常情况下,主用户的 UserId 为0,其它用户不为0。

 

四、多用户对APK安装的影响

1.如果一个用户已经安装过一个 APP,另一个用户再安装同一个 APP,但是签名不一样时,会安装不上。

2.如果一个用户安装了版本号是4的 APP,另一个用户安装版本号低于4的 APP,也会安装失败。

打 LOG 看了下 APK 的目录

news11-4-1.jpg

并没有区分用户,那么只要一个用户对APP进行了升级,其它用户使用的也是升级后的 APP 了

但是新创建的用户,除了系统预装的,看不到其它 APP

因此,只是对 APP 的显示做了隔离

 

五、多用户的数据目录

如下分别打印了主用户和新创建用户的 files 目录

news11-5-1.jpg

news11-5-2.jpg

可以看到,用户使用目录也是有隔离的。

 

六、多用户的存储目录

存储目录也会对不同的用户进行隔离。下图是截屏图片的存储目录:

news11-6-1.jpgnews11-6-2.jpg

Owner用户                                       其它用户

 
 

转载于:https://my.oschina.net/u/816213/blog/690030

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值