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

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

1、手机状态信息不同

Owner 用户                                                        其它用户ui

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

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

 

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

AndroidID会不同,对序列号没有影响。code

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

 

3、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。get

 

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

1.若是一个用户已经安装过一个 APP,另外一个用户再安装同一个 APP,可是签名不同时,会安装不上。file

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

打 LOG 看了下 APK 的目录数据

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

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

所以,只是对 APP 的显示作了隔离

 

5、多用户的数据目录

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



能够看到,用户使用目录也是有隔离的。

 

6、多用户的存储目录

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

Owner用户                                       其它用户

相关文章
相关标签/搜索