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用戶                                       其它用戶

相關文章
相關標籤/搜索