Android 通過分離用戶帳戶和應用程序數據來支持單個 Android 設備上的多個用戶。例如,父母可以允許他們的孩子使用家庭平板電腦,家庭可以共享一輛汽車,或者關鍵響應團隊可以共享移動設備來執行值班任務。
術語
Android 在描述 Android 用戶和帳戶時使用以下術語。
一般的
Android 設備管理使用以下通用術語。
- 用戶.每個用戶旨在由不同的自然人使用。每個用戶都有不同的應用程序數據和一些獨特的設置,以及用於在用戶之間顯式切換的用戶界面。當另一個用戶處於活動狀態時,一個用戶可以在後台運行;系統會在適當的時候管理關閉用戶以節省資源。可以直接通過用戶界面或從設備管理應用程序創建輔助用戶。
- 賬戶。帳戶包含在用戶內,但不是由用戶定義,用戶也不是由任何給定帳戶定義或鏈接到任何給定帳戶。用戶和配置文件包含自己獨特的帳戶,但不需要擁有帳戶即可運行。帳戶列表因用戶而異。有關詳細信息,請參閱Account 類定義。
- 簡介。配置文件具有獨立的應用程序數據,但共享一些系統範圍的設置(例如,Wi-Fi 和藍牙)。個人資料是用戶存在的子集,並與之相關。一個用戶可以有多個配置文件。配置文件是通過設備管理應用程序創建的。配置文件始終與父用戶具有不可變的關聯,該關聯由創建配置文件的用戶定義。配置文件不會在創建用戶的生命週期之外存在。
- 應用程序。應用程序的數據存在於每個關聯的用戶中。應用程序數據來自同一用戶內的其他應用程序的沙箱。同一用戶內的應用程序可以通過 IPC 相互交互。有關詳細信息,請參閱Android 企業版。
用戶類別
Android 設備管理使用以下類別的用戶。
- 系統用戶。第一個用戶添加到設備。除非通過恢復出廠設置,否則係統用戶無法刪除,並且即使其他用戶位於前台也始終在運行。該用戶還具有隻有其可以設置的特殊權限和設置。
- 二級用戶。除系統用戶之外添加到設備的任何用戶。輔助用戶可以被刪除(由自己或管理員用戶刪除),並且不會影響設備上的其他用戶。這些用戶可以在後台運行並繼續擁有網絡連接。
- 訪客用戶。臨時二級用戶。來賓用戶有一個明確的選項,可以在來賓用戶不再有用時快速刪除該來賓用戶。一次只能有一名訪客用戶。
- 管理員用戶。有權創建和刪除其他用戶以及控制某些常規多用戶設置的用戶。默認情況下,只有系統用戶是管理員。
配置文件類別
Android 設備管理使用以下類別的配置文件。
- 託管個人資料。由應用程序創建,用於包含工作數據和應用程序。它們由個人資料所有者(創建公司個人資料的應用程序)專門管理。啟動器、通知和最近任務由父用戶和公司配置文件共享。
- 受限制的個人資料。使用基於父用戶的帳戶,父用戶可以控制受限配置文件上可用的應用程序。僅適用於平板電腦和電視設備。
用戶類型
Android 11 將上述用戶和配置文件分類製定為明確定義的用戶類型,代表 Android 多用戶功能允許的所有不同類型的用戶和配置文件。
預定義的AOSP用戶類型在frameworks/base/core/java/android/os/UserManager.java
中定義,當前包括:
-
android.os.usertype.full.SYSTEM
-
android.os.usertype.full.SECONDARY
-
android.os.usertype.full.GUEST
-
android.os.usertype.full.DEMO
-
android.os.usertype.full.RESTRICTED
-
android.os.usertype.profile.MANAGED
-
android.os.usertype.system.HEADLESS
OEM 能夠通過覆蓋frameworks/base/core/res/res/xml/config_user_types.xml
文件來配置這些用戶類型。這有助於更改每種用戶類型的默認配置,包括其默認限制、圖標、徽章和允許的最大用戶數量。
除了可配置的 AOSP 用戶類型之外,OEM 還可以使用frameworks/base/core/res/res/xml/config_user_types.xml
文件定義新的配置文件類型。這使得 OEM 可以根據需要引入自己的非託管配置文件類型。但是,OEM 有責任根據需要進行平台修改以支持更改,包括修改檢查託管配置文件的任何代碼以現在處理新的配置文件類型(如果適用)。
啟用多用戶
從 Android 5.0 開始,默認情況下禁用多用戶功能。要啟用該功能,設備製造商必須定義一個資源覆蓋來替換frameworks/base/core/res/res/values/config.xml
中的以下值:
<!-- Maximum number of supported users --> <integer name="config_multiuserMaximumUsers">1</integer> <!-- Whether Multiuser UI should be shown --> <bool name="config_enableMultiUserUI">false</bool>
要應用此覆蓋並在設備上啟用訪客和輔助用戶,請使用 Android 構建系統的DEVICE_PACKAGE_OVERLAYS
功能來替換以下值:
-
config_multiuserMaximumUsers
的值大於1
-
config_enableMultiUserUI
為true
設備製造商可以決定最大用戶數量。如果設備製造商或其他人修改了設置,他們必須確保短信和電話按照Android 兼容性定義文檔(CDD) 中的定義工作。
管理多個用戶
用戶和配置文件(受限配置文件除外)的管理由以編程方式調用DevicePolicyManager
類中的 API 來限制使用的應用程序執行。
學校和企業可以使用用戶和配置文件來管理設備上應用程序和數據的生命週期和範圍,使用上述類型結合UserManager API來構建適合其用例的獨特解決方案。
多用戶系統行為
將用戶添加到設備後,當另一個用戶位於前台時,某些功能會受到限制。由於應用程序數據是按用戶分開的,因此這些應用程序的狀態因用戶而異。例如,發送至當前未關注的用戶帳戶的電子郵件將不可用,直到該用戶和帳戶在設備上處於活動狀態。
默認情況下,只有系統用戶擁有通話和短信的完全訪問權限。次要用戶可以接聽來電,但不能發送或接收文本。管理員用戶必須為其他人啟用這些功能。
注意:要為輔助用戶啟用或禁用電話和短信功能,請轉至設置 > 用戶,選擇用戶,然後將允許電話和短信設置切換為關閉。
當輔助用戶在後台時存在一些限制。例如,後台輔助用戶無法顯示用戶界面或激活藍牙服務。此外,如果設備需要額外的內存用於前台用戶的操作,系統進程將停止後台輔助用戶。
在 Android 設備上使用多個用戶時,請記住以下行為:
- 一次性顯示單個用戶的所有帳戶的通知。
- 其他用戶的通知只有在激活後才會顯示。
- 每個用戶都有一個工作區來安裝和放置應用程序。
- 任何用戶都無法訪問其他用戶的應用程序數據。
- 任何用戶都可以影響所有用戶已安裝的應用程序。
- 管理員用戶可以刪除應用程序,甚至可以刪除輔助用戶建立的整個工作區。
- 默認情況下,退出訪客模式時,訪客用戶會話中的信息不會保留。如果您希望保留來賓用戶會話中的信息,則必須創建一個資源覆蓋文件,將
config_guestUserAllowEphemeralStateChange
設置為false
。有關創建覆蓋文件的更多信息,請參閱使用資源覆蓋自定義構建。
Android 7.0 包含多項增強功能,包括:
- 切換工作配置文件。用戶可以禁用其託管配置文件(例如在不工作時)。該功能是通過停止用戶來實現的; UserManagerService 調用
ActivityManagerNative#stopUser()
。 - 永遠在線的VPN 。 VPN 應用程序現在可以由用戶、設備 DPC 或託管配置文件 DPC 設置為始終開啟(僅適用於託管配置文件應用程序)。啟用後,應用程序無法訪問公共網絡(在 VPN 連接並且可以通過它路由連接之前,將停止對網絡資源的訪問)。報告
device_admin
的設備必須實施永遠在線的 VPN。
有關 Android 7.0 設備管理功能的更多詳細信息,請參閱Android for Work 。
Android 汽車多用戶
Android Automotive 依靠 Android 的多用戶實現來提供共享的設備體驗。
汽車用戶類型
除了上面列出的用戶類型之外,汽車版本對於以下類型的用戶也值得注意:
- 無頭系統用戶。系統用戶承載所有系統服務。為了支持 Automotive 上的多個用戶,系統用戶也必須是無頭的。只有一名無頭用戶。無頭系統用戶:
- 必須始終在後台運行。
- 用戶無法直接刪除或訪問,設備配置情況除外。例如,用戶無法切換到此用戶類型來執行下載應用程序或添加帳戶等任務。
- 只能通過恢復出廠設置來清除。
- 普通用戶。與上面描述的次要用戶相同,除了次要用戶:
- 不要在後台運行(切換後)。
- 可以直接通過用戶界面創建。
- 分離應用程序數據,但共享一些系統範圍的設置。例如,Wi-Fi 和藍牙。
注意事項
以下例外情況適用於無頭系統用戶和汽車領域的常規(二級)用戶:
- 無頭系統用戶不支持工作配置文件。
- 默認情況下,常規(次要)用戶擁有通話和短信的完全訪問權限。
- 默認情況下,常規(輔助)用戶不會在後台運行。
啟用無頭系統用戶
從 Android 10 開始,多用戶功能可用於汽車用例。重要的區別包括:
- 系統用戶是無頭的,僅在後台運行。
- 人類用戶不與系統用戶交互。
為了啟用無頭系統用戶,設備製造商必須啟用如上所述的多用戶。
當啟用無頭用戶時:- 要將設備聲明為 Automotive,請添加功能
android.hardware.type.automotive
。 - 將
ro.fw.headless_system_user
設置為true
。 - 將
config_multiuserMaximumUsers
的值設置為2
(或更高)。
有關詳細信息,請參閱汽車中的多用戶支持。
,Android 通過分離用戶帳戶和應用程序數據來支持單個 Android 設備上的多個用戶。例如,父母可以允許他們的孩子使用家庭平板電腦,家庭可以共享一輛汽車,或者關鍵響應團隊可以共享移動設備來執行值班任務。
術語
Android 在描述 Android 用戶和帳戶時使用以下術語。
一般的
Android 設備管理使用以下通用術語。
- 用戶.每個用戶旨在由不同的自然人使用。每個用戶都有不同的應用程序數據和一些獨特的設置,以及用於在用戶之間顯式切換的用戶界面。當另一個用戶處於活動狀態時,一個用戶可以在後台運行;系統會在適當的時候管理關閉用戶以節省資源。可以直接通過用戶界面或從設備管理應用程序創建輔助用戶。
- 賬戶。帳戶包含在用戶內,但不是由用戶定義,用戶也不是由任何給定帳戶定義或鏈接到任何給定帳戶。用戶和配置文件包含自己獨特的帳戶,但不需要擁有帳戶即可運行。帳戶列表因用戶而異。有關詳細信息,請參閱Account 類定義。
- 簡介。配置文件具有獨立的應用程序數據,但共享一些系統範圍的設置(例如,Wi-Fi 和藍牙)。個人資料是用戶存在的子集,並與之相關。一個用戶可以有多個配置文件。配置文件是通過設備管理應用程序創建的。配置文件始終與父用戶具有不可變的關聯,該關聯由創建配置文件的用戶定義。配置文件不會在創建用戶的生命週期之外存在。
- 應用程序。應用程序的數據存在於每個關聯的用戶中。應用程序數據來自同一用戶內的其他應用程序的沙箱。同一用戶內的應用程序可以通過 IPC 相互交互。有關詳細信息,請參閱Android 企業版。
用戶類別
Android 設備管理使用以下類別的用戶。
- 系統用戶。第一個用戶添加到設備。除非通過恢復出廠設置,否則係統用戶無法刪除,並且即使其他用戶位於前台也始終在運行。該用戶還具有隻有其可以設置的特殊權限和設置。
- 二級用戶。除系統用戶之外添加到設備的任何用戶。輔助用戶可以被刪除(由他們自己或管理員用戶刪除),並且不會影響設備上的其他用戶。這些用戶可以在後台運行並繼續擁有網絡連接。
- 訪客用戶。臨時二級用戶。來賓用戶有一個明確的選項,可以在來賓用戶不再有用時快速刪除該來賓用戶。一次只能有一名訪客用戶。
- 管理員用戶。有權創建和刪除其他用戶以及控制某些常規多用戶設置的用戶。默認情況下,只有系統用戶是管理員。
配置文件類別
Android 設備管理使用以下類別的配置文件。
- 託管個人資料。由應用程序創建,用於包含工作數據和應用程序。它們由個人資料所有者(創建公司個人資料的應用程序)專門管理。啟動器、通知和最近任務由父用戶和公司配置文件共享。
- 受限制的個人資料。使用基於父用戶的帳戶,父用戶可以控制受限配置文件上可用的應用程序。僅適用於平板電腦和電視設備。
用戶類型
Android 11 將上述用戶和配置文件分類製定為明確定義的用戶類型,代表 Android 多用戶功能允許的所有不同類型的用戶和配置文件。
預定義的AOSP用戶類型在frameworks/base/core/java/android/os/UserManager.java
中定義,當前包括:
-
android.os.usertype.full.SYSTEM
-
android.os.usertype.full.SECONDARY
-
android.os.usertype.full.GUEST
-
android.os.usertype.full.DEMO
-
android.os.usertype.full.RESTRICTED
-
android.os.usertype.profile.MANAGED
-
android.os.usertype.system.HEADLESS
OEM 能夠通過覆蓋frameworks/base/core/res/res/xml/config_user_types.xml
文件來配置這些用戶類型。這有助於更改每種用戶類型的默認配置,包括其默認限制、圖標、徽章和允許的最大用戶數量。
除了可配置的 AOSP 用戶類型之外,OEM 還可以使用frameworks/base/core/res/res/xml/config_user_types.xml
文件定義新的配置文件類型。這使得 OEM 可以根據需要引入自己的非託管配置文件類型。但是,OEM 有責任根據需要進行平台修改以支持更改,包括修改檢查託管配置文件的任何代碼以現在處理新的配置文件類型(如果適用)。
啟用多用戶
從 Android 5.0 開始,默認情況下禁用多用戶功能。要啟用該功能,設備製造商必須定義一個資源覆蓋來替換frameworks/base/core/res/res/values/config.xml
中的以下值:
<!-- Maximum number of supported users --> <integer name="config_multiuserMaximumUsers">1</integer> <!-- Whether Multiuser UI should be shown --> <bool name="config_enableMultiUserUI">false</bool>
要應用此覆蓋並在設備上啟用訪客和輔助用戶,請使用 Android 構建系統的DEVICE_PACKAGE_OVERLAYS
功能來替換以下值:
-
config_multiuserMaximumUsers
的值大於1
-
config_enableMultiUserUI
為true
設備製造商可以決定最大用戶數量。如果設備製造商或其他人修改了設置,他們必須確保短信和電話按照Android 兼容性定義文檔(CDD) 中的定義工作。
管理多個用戶
用戶和配置文件(受限配置文件除外)的管理由以編程方式調用DevicePolicyManager
類中的 API 來限制使用的應用程序執行。
學校和企業可以使用用戶和配置文件來管理設備上應用程序和數據的生命週期和範圍,使用上述類型結合UserManager API來構建適合其用例的獨特解決方案。
多用戶系統行為
將用戶添加到設備後,當另一個用戶位於前台時,某些功能會受到限制。由於應用程序數據是按用戶分開的,因此這些應用程序的狀態因用戶而異。例如,發送至當前未關注的用戶帳戶的電子郵件將不可用,直到該用戶和帳戶在設備上處於活動狀態。
默認情況下,只有系統用戶擁有通話和短信的完全訪問權限。次要用戶可以接聽來電,但不能發送或接收文本。管理員用戶必須為其他人啟用這些功能。
注意:要為輔助用戶啟用或禁用電話和短信功能,請轉至設置 > 用戶,選擇用戶,然後將允許電話和短信設置切換為關閉。
當輔助用戶在後台時存在一些限制。例如,後台輔助用戶無法顯示用戶界面或激活藍牙服務。此外,如果設備需要額外的內存用於前台用戶的操作,系統進程將停止後台輔助用戶。
在 Android 設備上使用多個用戶時,請記住以下行為:
- 一次性顯示單個用戶的所有帳戶的通知。
- 其他用戶的通知只有在激活後才會顯示。
- 每個用戶都有一個工作區來安裝和放置應用程序。
- 任何用戶都無法訪問其他用戶的應用程序數據。
- 任何用戶都可以影響所有用戶已安裝的應用程序。
- 管理員用戶可以刪除應用程序,甚至可以刪除輔助用戶建立的整個工作區。
- 默認情況下,退出訪客模式時,訪客用戶會話中的信息不會保留。如果您希望保留來賓用戶會話中的信息,則必須創建一個資源覆蓋文件,將
config_guestUserAllowEphemeralStateChange
設置為false
。有關創建覆蓋文件的更多信息,請參閱使用資源覆蓋自定義構建。
Android 7.0 包含多項增強功能,包括:
- 切換工作配置文件。用戶可以禁用其託管配置文件(例如在不工作時)。該功能是通過停止用戶來實現的; UserManagerService 調用
ActivityManagerNative#stopUser()
。 - 永遠在線的VPN 。 VPN 應用程序現在可以由用戶、設備 DPC 或託管配置文件 DPC 設置為始終開啟(僅適用於託管配置文件應用程序)。啟用後,應用程序無法訪問公共網絡(在 VPN 連接並且可以通過它路由連接之前,將停止對網絡資源的訪問)。報告
device_admin
的設備必須實施永遠在線的 VPN。
有關 Android 7.0 設備管理功能的更多詳細信息,請參閱Android for Work 。
Android 汽車多用戶
Android Automotive 依靠 Android 的多用戶實現來提供共享的設備體驗。
汽車用戶類型
除了上面列出的用戶類型之外,汽車版本對於以下類型的用戶也值得注意:
- 無頭系統用戶。系統用戶承載所有系統服務。為了支持 Automotive 上的多個用戶,系統用戶也必須是無頭的。只有一名無頭用戶。無頭系統用戶:
- 必須始終在後台運行。
- 用戶無法直接刪除或訪問,設備配置情況除外。例如,用戶無法切換到此用戶類型來執行下載應用程序或添加帳戶等任務。
- 只能通過恢復出廠設置來清除。
- 普通用戶。與上面描述的次要用戶相同,除了次要用戶:
- 不要在後台運行(切換後)。
- 可以直接通過用戶界面創建。
- 分離應用程序數據,但共享一些系統範圍的設置。例如,Wi-Fi 和藍牙。
注意事項
以下例外情況適用於無頭系統用戶和汽車領域的常規(二級)用戶:
- 無頭系統用戶不支持工作配置文件。
- 默認情況下,常規(次要)用戶擁有通話和短信的完全訪問權限。
- 默認情況下,常規(輔助)用戶不會在後台運行。
啟用無頭系統用戶
從 Android 10 開始,多用戶功能可用於汽車用例。重要的區別包括:
- 系統用戶是無頭的,僅在後台運行。
- 人類用戶不與系統用戶交互。
為了啟用無頭系統用戶,設備製造商必須啟用如上所述的多用戶。
當啟用無頭用戶時:- 要將設備聲明為 Automotive,請添加功能
android.hardware.type.automotive
。 - 將
ro.fw.headless_system_user
設置為true
。 - 將
config_multiuserMaximumUsers
的值設置為2
(或更高)。
有關詳細信息,請參閱汽車中的多用戶支持。