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

原创
2016/06/12 17:09
阅读数 4.3K

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

一、手机状态信息不一样

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 的目录

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

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

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

 

五、多用户的数据目录

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



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

 

六、多用户的存储目录

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

Owner用户                                       其它用户

 
 

展开阅读全文
加载中

作者的其它热门文章

打赏
0
16 收藏
分享
打赏
2 评论
16 收藏
0
分享
返回顶部
顶部