여러 사용자 지원

Android는 사용자 계정과 애플리케이션 데이터를 분리해 하나의 Android 기기에서 여러 사용자를 지원합니다. 예를 들어, 부모가 아이들이 가족용 태블릿을 사용하도록 허용하거나, 가족이 자동차를 공유하거나, 긴급 대응팀이 당직 업무를 위해 모바일 기기를 공유할 수 있습니다.

용어

Android에서는 Android 사용자와 계정을 설명할 때 다음 용어를 사용합니다.

일반

Android 기기 관리에서는 다음과 같은 일반 용어를 사용합니다.

  • 사용자. 각 사용자는 실제 개인을 가리키는 데 사용하기 위한 용어입니다. 각 사용자에게는 별개의 애플리케이션 데이터와 고유한 설정 그리고 사용자 간에 명확하게 전환하기 위한 사용자 인터페이스가 있습니다. 한 사용자가 활성 상태이면 다른 사용자는 백그라운드에서 실행될 수 있고, 시스템에서는 적절한 경우 리소스를 절약하기 위해 사용자 종료를 관리합니다. 보조 사용자는 기본 사용자 인터페이스를 통해 또는 기기 관리 애플리케이션에서 직접 생성할 수 있습니다.
  • 계정. 계정은 사용자 내에 포함되지만 사용자가 정의하지 않고, 사용자가 계정으로 정의되지도, 임의의 계정에 연결되어 있지도 않습니다. 사용자 및 프로필에는 고유한 계정이 있지만 계정이 기능할 필요는 없습니다. 계정 목록은 사용자별로 다릅니다. 자세한 내용은 Account 클래스 정의를 참조하세요.
  • 프로필. 프로필에는 분리된 앱 데이터가 있지만 프로필은 몇 가지 시스템 차원 설정(예: Wi-Fi 및 블루투스)을 공유합니다. 프로필은 사용자 존재의 하위 집합이자 사용자 존재와 연결되어 있습니다. 사용자는 프로필을 여러 개 가질 수 있습니다. 프로필은 기기 관리 애플리케이션을 통해 생성합니다. 프로필에는 항상 상위 사용자에 대한 불변하는 연결이 있는데, 이는 프로필을 생성한 사용자가 정의합니다. 프로필은 프로필을 생성한 사용자보다 오래 존재할 수 없습니다.
  • . 애플리케이션 데이터는 연결된 각 사용자 내에 있습니다. 앱 데이터에는 동일한 사용자 내 다른 애플리케이션에서 샌드박스가 설정됩니다. 동일한 사용자 내의 앱은 IPC를 통해 서로 상호 작용할 수 있습니다. 자세한 내용은 업무용 앱 빌드를 참조하십시오.

사용자 유형

Android 기기 관리에서는 다음 사용자 유형을 사용합니다.

  • 기본. 기기에 추가된 첫 번째 사용자. 기본 사용자는 제거할 수 없는데, 초기화하는 경우는 예외입니다. 다른 사용자가 포그라운드에서 실행 중이더라도 항상 실행 중입니다. 기본 사용자는 기본 사용자만 설정할 수 있는 특수한 권한과 설정을 가지고 있습니다.
  • 보조. 기본 사용자 이외에 기기에 추가된 모든 사용자. 보조 사용자는 (스스로 또는 기본 사용자가) 제거할 수 있고 기기에서 다른 사용자에게 영향을 미치지 않습니다. 보조 사용자는 백그라운드에서 실행할 수 있고 계속해서 네트워크에 연결되어 있을 수 있습니다.
  • 게스트. 임시 보조 사용자. 게스트 사용자는 필요가 다하면 신속하게 게스트 사용자를 삭제할 수 있는 확실한 옵션을 가지고 있습니다. 게스트 사용자는 한 번에 한 명만 있을 수 있습니다.

프로필 유형

Android 기기 관리에서는 다음 프로필 유형을 사용합니다.

  • 관리. 직장 데이터 및 앱을 포함하기 위해 애플리케이션에서 생성합니다. 관리 프로필은 프로필 소유자(회사 프로필을 생성한 앱)가 전적으로 관리합니다. 기본 사용자와 회사 프로필은 런처, 알림 및 최근 작업을 공유합니다.
  • 제한. 제한된 프로필에서 사용 가능한 앱을 제어할 수 있는 기본 사용자 기반의 계정을 사용합니다. 태블릿 및 TV 기기에서만 사용할 수 있습니다.

멀티 사용자 사용 설정

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로)

기기 제조업체에서는 최대 사용자 수를 결정할 수 있습니다. 기기 제조업체 등이 설정을 수정한 경우 SMS 및 전화 통신 작업이 CDD (Android 호환성 정의 문서)에 정의된 대로인지 확인해야 합니다.

멀티 사용자 관리

사용자 및 프로필 관리(제한된 프로필은 제외)는 사용을 제한하기 위해 DevicePolicyManager 클래스에서 API를 프로그래밍 방식으로 호출하는 애플리케이션이 수행합니다.

학교 및 기업에서는 기기에서 앱 및 데이터의 수명 및 범위를 관리하기 위한 사용자 및 프로필을 선택할 수 있고, UserManager API와 함께 위에서 설명한 유형을 사용하여 사용 사례에 맞는 고유한 솔루션을 빌드할 수 있습니다.

멀티 사용자 시스템 동작

사용자가 기기에 추가된 경우 다른 사용자가 포그라운드에 있으면 일부 기능이 축소될 수 있습니다. 앱 데이터는 사용자별로 구분되기 때문에 앱의 상태는 사용자마다 다릅니다. 예를 들어, 현재 활성 상태가 아닌 사용자의 계정으로 전송되는 이메일은 해당 사용자 및 계정이 기기에서 활성 상태가 될 때까지 사용할 수 없습니다.

기본적으로 전화 통화 및 문자에 대한 전체 액세스 권한은 기본 사용자만 갖습니다. 보조 사용자는 수신 전화를 받을 수는 있지만 문자를 보내거나 받을 수는 없습니다. 기본 사용자가 다른 사용자에 대해 이러한 기능을 사용하도록 설정해야 합니다.

참고: 보조 사용자에 대해 전화 및 SMS 기능을 사용 또는 사용 중지하도록 설정하려면 설정 > 사용자로 이동해 전화 통화 및 SMS 허용 설정을 끕니다.

보조 사용자가 백그라운드에 있으면 일부 제한사항이 적용됩니다. 예를 들어, 백그라운드에 있는 보조 사용자는 사용자 인터페이스를 표시하거나 Bluetooth 서비스를 활성화할 수 없습니다. 또한 포그라운드 사용자의 작업을 위해 기기에 추가 메모리가 필요한 경우 시스템에서는 백그라운드에 있는 보조 사용자를 실행 중지합니다.

Android 기기에서 여러 사용자를 선택할 때 다음 동작을 염두에 두세요.

  • 알림은 한 번에 단일 사용자의 모든 계정에 대해 나타납니다.
  • 다른 사용자에 대한 알림은 해당 사용자가 활성화될 때까지 표시되지 않습니다.
  • 각 사용자는 앱을 설치하고 배치할 수 있는 작업 공간을 갖습니다.
  • 다른 사용자의 앱 데이터에 액세스 할 수 있는 사용자는 없습니다.
  • 사용자 누구나 모든 사용자를 위해 설치된 앱에 영향을 줄 수 있습니다.
  • 기본 사용자는 보조 사용자가 설정한 앱 또는 전체 작업 공간을 삭제할 수 있습니다.

Android 7.0에서는 다음과 같은 몇 가지 기능이 개선되었습니다.

  • 직장 프로필 전환. 사용자는 자신의 관리 프로필을 사용 중지할 수 있습니다 (예: 회사 외부에 있는 경우). 이 기능은 사용자를 중지해 수행할 수 있는데, UserManagerService는 ActivityManagerNative#stopUser()를 호출합니다.
  • 연결 유지 VPN. VPN 애플리케이션은 이제 사용자, 기기 DPC 또는 관리 프로필 DPC(관리 프로필 애플리케이션에만 적용됨)가 연결 유지로 설정할 수 있습니다. 사용하도록 설정하면 애플리케이션이 공용 네트워크에 액세스할 수 없습니다(VPN이 연결되어 연결이 VPN을 통해 라우팅될 수 있을 때까지 네트워크 리소스에 대한 액세스가 중지됨). device_admin을 보고하는 기기는 연결 유지 VPN을 구현해야 합니다.

Android 7.0 기기 관리 기능에 대한 자세한 내용은 Android for Work를 참조하세요.

Android Automotive 멀티 사용자

Android Automotive는 Android의 멀티 사용자 구현을 기반으로 공유 기기 경험을 제공합니다.

Automotive 사용자 유형

위에 나열된 사용자 유형 외에도 Automotive 빌드에서는 다음 사용자 유형을 살펴볼 필요가 있습니다.

  • 헤드리스 시스템 사용자 시스템 사용자는 모든 시스템 서비스를 호스팅합니다. Automotive의 경우 시스템 사용자는 헤드리스여야 합니다. 헤드리스 사용자는 한 명뿐입니다. 헤드리스 시스템 사용자는 다음의 특징을 갖습니다.
    • 항상 백그라운드에서 실행해야 합니다.
    • 사용자가 직접 삭제하거나 액세스할 수 없습니다. 예를 들어, 사용자는 앱 다운로드 또는 계정 추가 등과 같은 작업을 수행하기 위해 이 사용자 유형으로 전환할 수 없습니다.
    • 초기화를 통해서만 삭제할 수 있습니다.
  • 보조 사용자. 다음과 같은 점을 제외하고 보조 사용자는 위의 설명과 동일합니다.
    • 백그라운드에서 실행되지 않고 네트워크 연결을 계속 유지하지 않습니다.
    • 기본 사용자 인터페이스를 통해 직접 생성할 수 있습니다.
    • 앱 데이터를 분리했지만 일부 시스템 차원 설정은 공유합니다. 예: Wi-Fi 및 블루투스

주의 사항

다음 예외는 헤드리스, 보조 및 관리 사용자에게 적용됩니다.

  • 헤드리스 시스템 사용자는 직장 프로필을 지원하지 않습니다.
  • 기본적으로 보조 사용자는 전화 통화 및 문자에 대한 전체 액세스 권한을 갖습니다.
  • 기본적으로 보조 사용자는 백그라운드에서 실행되지 않습니다.
  • 기본적으로 관리자는 사용자를 추가 및 삭제하고 기기를 초기화할 수 있습니다.

헤드리스 시스템 사용자 사용하기

Android 10에서 멀티 사용자 기능은 Automotive 사용 사례에 사용할 수 있습니다. 중요한 차이점은 다음과 같습니다.

  • 시스템 사용자는 헤드리스이며 백그라운드에서만 실행됩니다.
  • 인간 사용자는 시스템 사용자와 상호 작용하지 않습니다.

헤드리스 시스템 사용자를 사용하도록 설정하려면 기기 제조업체에서는 위에서 설명한 대로 멀티 사용자 기능을 사용하도록 설정해야 합니다.

헤드리스 사용자가 사용 설정된 경우:
  • 기기를 Automotive로 선언하려면 android.hardware.type.automotive 기능을 추가합니다.
  • ro.fw.multiuser.headless_system_usertrue로 설정합니다.
  • config_multiuserMaximumUsers의 값을 2(이상)로 설정합니다.